download original
Group-Buffer => a =>
message-setup(((Newsgroups . "") (Subject . "")))
* message-news("")
* gnus-post-news(post "")
* byte-code("..." [arg prefix-numeric-value 1 completing-read "Newsgroup: " gnus-active-hashtb nil gnus-read-active-file-p gnus-group-group-name "" gnus-newsgroup-name gnus-post-news post] 5)
* gnus-group-post-news(nil)
call-interactively(gnus-group-post-news)
message-setup erledigt den Großteil des Erzeugens und Vorbereitens des
neuen Message-Buffers für die zu schreibende Nachricht.
Wichtige Tweakpoints (Punkte, an denen man drehen kann) (in
chronologischer Reihenfolge der Anwendung):
message-header-format-alist
message-default-([mail-|news-])headers
message-generate-headers-first
message-signature-setup-hook
(message-insert-signature)
message-signature
message-alternative-emails (wird gematcht auf To: und Cc:; siehe
message-use-alternative-email-as-from)
message-setup-hook
----------
Message-Mode => C-c C-c =>
[message.el]
==>message-send-and-exit
==>message-send
==>message-fix-before-sending
(run-hooks 'message-send-hook) ;; stdmäßig nil
Mittels Infos aus "message-send-method-alist" Nachrichtentyp
pruefen (normalerweise News oder Mail) und mittels
entspr. Funktion verschicken. "message-send-method-alist" hat als
stdwert:
((news message-news-p message-send-via-news)
(mail message-mail-p message-send-via-mail))
(Jeweils: (Typ, Prädikatfkt. zum Check, Sendefunktion))
Impl. von message-news-p message-mail-p s.u.
Beim Verschicken einer Mail wird also bspw. aufgerufen:
==>message-send-via-mail
==>message-send-mail (L2253)
(let ((message-deletable-headers '(Message-ID Date Lines)))
==>(message-generate-headers message-required-mail-headers) (L3156)
....
) ;;let
(run-hooks 'message-header-hook) ;;stdmäßig nil
.... (ab L2272)
if (Senden erfolgreich)
==>message-do-fcc
Nachricht in allen in "Fcc" - Headern der Nachricht
angegebenen Dateien abspeichern (jwls. ein Dateiname pro
Fcc-Header). Die Fcc-Header selbst werden entfernt, die
Nachricht wird entspr. encoded usw.. Die Fcc-Header können
alternativ zu Dateinamen auch Kommandos angeben, in die der
Nachrichtentext hineingepiped werden soll. Näheres siehe
message-do-fcc - Impl.
(save-excursion
(run-hooks 'message-sent-hook)) ;;stdmäßig nil
---------------
Nebeninfo (wg. Übersichtlichkeit hier und nicht in message-send):
==>message-news-p
true gdw.:
- Var. "message-this-is-mail" ist nil (nicht-true)
und
- - Var. "message-this-is-news" ist true
oder
- Message enthält Header "newsgroups" und enthält nicht den Header
"posted-to"
==>message-mail-p
true gdw.:
- Var. "message-this-is-news" ist nil (nicht-true)
und
- - Var. "message-this-is-mail" ist true
oder
- Message enthält mind. einen der Header "to", "cc", "bcc"
d.h. mit "message-this-is-news" bzw. "message-this-is-mail" kann man
den jwlg. Typ erzwingen, sind diese Variablen nil, werden die Header
überprüft
-----------------------
message-send-and-exit nochmal (verschiedene Stacktraces in
chronologischer Reihenfolge)
message-make-fqdn()
* message-make-message-id()
* message-generate-headers((From Newsgroups Subject Date Message-ID (optional . Organization) Lines (optional . User-Agent)))
* message-send-news(nil)
* message-send-via-news(nil)
* message-send(nil)
* byte-code("..." [message-exit-actions actions buf message-send arg buffer-name message-kill-buffer-on-exit kill-buffer bury-buffer message-bury message-do-actions t] 2)
* message-send-and-exit(nil)
call-interactively(message-send-and-exit)
* message-make-address()
* message-make-from()
* message-generate-headers((From Newsgroups Subject Date Message-ID (optional . Organization) Lines (optional . User-Agent)))
* message-send-news(nil)
* message-send-via-news(nil)
* message-send(nil)
* byte-code("..." [message-exit-actions actions buf message-send arg buffer-name message-kill-buffer-on-exit kill-buffer bury-buffer message-bury message-do-actions t] 2)
* message-send-and-exit(nil)
call-interactively(message-send-and-exit)
=> In message-make-address() wird die Mailadresse für den From: -
Header generiert: Bevorzugt aus "user-mail-address" oder -- wenn das
nil ist -- als (concat (user-login-name) "@" (message-make-domain))
(message-make-domain) ist:
system-name, falls da mind. ein "." drin ist; sonst:
mail-host-address, falls da mind. ein "." drin ist; sonst:
alles hinter dem "@" in user-mail-address, falls user-mail-address
ein "@" und dahinter mind. ein "." enthält, sonst:
(concat system-name ".i-did-not-set--mail-host-address--so-shoot-me")
Der Realname der From-Adresse ist
(or (and (boundp 'user-full-name)
user-full-name)
(user-full-name))
sonstige Tweakpoints (in chronologischer Reihenfolge der Anwendung):
message-send-hook
Bei News ((message-send-via-news)):
gnus-group-name-charset-method-alist
gnus-group-name-charset-group-alist
rfc2047-header-encoding-alist
message-syntax-checks (s. (message-check-news-body-syntax))
gnus-group-posting-charset-alist
message-required-news-headers
(message-make-date)
(message-make-message-id)
(message-make-organization)
(message-make-path)
(message-make-in-reply-to)
(message-make-lines)
(message-make-expires)
message-newsreader
message-from-style
message-header-hook
message-inhibit-body-encoding
message-default-charset
Mule-Unterstützung in Emacs
(mm-mime-charset 'latin-iso8859-15) sollte nicht nil
zurückgeben. Siehe Fkt. mm-find-mime-charset-region
message-ignored-news-headers
message-send-news-hook
Das eigentlich Senden erfolgt ueber (gnus-request-post method).
Bei Mail ((message-send-via-mail)):
TODO
Bei Erfolg:
(message-do-fcc) (kein Tweakpoint, sondern Fcc-Header-Verarbeitung,
siehe Impl.)
message-send-actions
message-kill-buffer-on-exit
message-exit-actions (s. (message-do-actions))
------
Summary- oder Message-Buffer => F => gnus-summary-followup-with-original
verschiedene Stacktraces in chronologischer Reihenfolge:
Return value: (152747)
gnus-summary-work-articles(nil)
* byte-code("..." [gnus-summary-followup gnus-summary-work-articles n force-news] 3)
* gnus-summary-followup-with-original(nil)
call-interactively(gnus-summary-followup-with-original)
Entering:
* gnus-copy-article-buffer()
* gnus-post-news(nil "ger.ct" [152747 "Re: Microsoft mu~ ja ziemlich verzweifelt sein..." "\"Matthias Eissing\" <MEissing@gmx.de>" "Sat, 22 May 2004 16:34:11 +0200" "<40af64e8@news02.heise.de>" "<871xldjz6c.fsf@320025674319-0001.dialin.t-online.de> <40ae6cf0@news02.heise.de> <slrncasvrp.3bb.s_kraste@smk.imweber.dyndns.org> <40aefe1f$1@news02.heise.de> <871xlcww3n.fsf@320025674319-0001.dialin.t-online.de> <40af3df0@news02.heise.de> <87wu34vcp1.fsf@320025674319-0001.dialin.t-online.de>" 1399 13 "news.arcor-ip.de ger.ct:152747" nil] "*Article*" (152747) nil nil)
* gnus-summary-followup((152747) nil)
* byte-code("..." [gnus-summary-followup gnus-summary-work-articles n force-news] 3)
* gnus-summary-followup-with-original(nil)
call-interactively(gnus-summary-followup-with-original)
gnus-post-news benutzt das Makro gnus-setup-message...
Tweakpoint hier:
message-mode-hook
message-header-setup-hook wird temporär erweitert um:
gnus-inews-insert-gcc
gnus-inews-insert-archive-gcc
gnus-configure-posting-styles
Entering:
* message-functionp(nil)
* message-followup(nil)
* gnus-post-news(nil "ger.ct" [152747 "Re: Microsoft mu~ ja ziemlich verzweifelt sein..." "\"Matthias Eissing\" <MEissing@gmx.de>" "Sat, 22 May 2004 16:34:11 +0200" "<40af64e8@news02.heise.de>" "<871xldjz6c.fsf@320025674319-0001.dialin.t-online.de> <40ae6cf0@news02.heise.de> <slrncasvrp.3bb.s_kraste@smk.imweber.dyndns.org> <40aefe1f$1@news02.heise.de> <871xlcww3n.fsf@320025674319-0001.dialin.t-online.de> <40af3df0@news02.heise.de> <87wu34vcp1.fsf@320025674319-0001.dialin.t-online.de>" 1399 13 "news.arcor-ip.de ger.ct:152747" nil] "*Article*" (152747) nil nil)
* gnus-summary-followup((152747) nil)
* byte-code("..." [gnus-summary-followup gnus-summary-work-articles n force-news] 3)
* gnus-summary-followup-with-original(nil)
call-interactively(gnus-summary-followup-with-original)
Tweakpoint:
message-followup-to-function
Return value: nil
message-pop-to-buffer("*followup to Matthias Eissing on ger.ct*<3>")
* message-followup(nil)
* gnus-post-news(nil "ger.ct" [152747 "Re: Microsoft mu~ ja ziemlich verzweifelt sein..." "\"Matthias Eissing\" <MEissing@gmx.de>" "Sat, 22 May 2004 16:34:11 +0200" "<40af64e8@news02.heise.de>" "<871xldjz6c.fsf@320025674319-0001.dialin.t-online.de> <40ae6cf0@news02.heise.de> <slrncasvrp.3bb.s_kraste@smk.imweber.dyndns.org> <40aefe1f$1@news02.heise.de> <871xlcww3n.fsf@320025674319-0001.dialin.t-online.de> <40af3df0@news02.heise.de> <87wu34vcp1.fsf@320025674319-0001.dialin.t-online.de>" 1399 13 "news.arcor-ip.de ger.ct:152747" nil] "*Article*" (152747) nil nil)
* gnus-summary-followup((152747) nil)
* byte-code("..." [gnus-summary-followup gnus-summary-work-articles n force-news] 3)
* gnus-summary-followup-with-original(nil)
call-interactively(gnus-summary-followup-with-original)
Entering:
* message-setup(((Subject . "Re: Microsoft mu~ ja ziemlich verzweifelt sein...") (Newsgroups . "ger.ct") (References . "<871xldjz6c.fsf@320025674319-0001.dialin.t-online.de> <40ae6cf0@news02.heise.de> <slrncasvrp.3bb.s_kraste@smk.imweber.dyndns.org> <40aefe1f$1@news02.heise.de> <871xlcww3n.fsf@320025674319-0001.dialin.t-online.de> <40af3df0@news02.heise.de> <87wu34vcp1.fsf@320025674319-0001.dialin.t-online.de> <40af64e8@news02.heise.de>")) #<buffer " *gnus article copy*">)
* message-followup(nil)
* gnus-post-news(nil "ger.ct" [152747 "Re: Microsoft mu~ ja ziemlich verzweifelt sein..." "\"Matthias Eissing\" <MEissing@gmx.de>" "Sat, 22 May 2004 16:34:11 +0200" "<40af64e8@news02.heise.de>" "<871xldjz6c.fsf@320025674319-0001.dialin.t-online.de> <40ae6cf0@news02.heise.de> <slrncasvrp.3bb.s_kraste@smk.imweber.dyndns.org> <40aefe1f$1@news02.heise.de> <871xlcww3n.fsf@320025674319-0001.dialin.t-online.de> <40af3df0@news02.heise.de> <87wu34vcp1.fsf@320025674319-0001.dialin.t-online.de>" 1399 13 "news.arcor-ip.de ger.ct:152747" nil] "*Article*" (152747) nil nil)
* gnus-summary-followup((152747) nil)
* byte-code("..." [gnus-summary-followup gnus-summary-work-articles n force-news] 3)
* gnus-summary-followup-with-original(nil)
call-interactively(gnus-summary-followup-with-original)
-----
Problem: Bei Followups auf Nachrichten mit Encoding iso-8859-15:
"Message contains characters with unknown encoding. Really send?"
Entering:
* mml-parse-1()
mml-parse()
mml-generate-mime()
message-encode-message-body()
message-send-news(nil)
message-send-via-news(nil)
message-send(nil)
message-send-and-exit(nil)
call-interactively(message-send-and-exit)
Entering:
* mm-find-mime-charset-region(696 1633)
* byte-code("..." [nil raw no-markup-p use-ascii warn charsets contents point tag struct looking-at "<#/multipart" "<#multipart" mml-read-tag mml-parse-1 "<#external" mml-read-part "<#part" "<#mml" part (type . "text/plain") t mml mm-find-mime-charset-region unknown-encoding mml-confirmation-set y-or-n-p "Message contains characters with unknown encoding. Really send?" "Use ASCII as charset?" delq error "Edit your message to remove those characters" 2 string-match "[^
\n]" mml-parse-singlepart-with-multiple-charsets nstruct multipart format "Warning: Your message contains more than %d parts. Really send? " "Edit your message to use only one charset" 1] 9)
* mml-parse-1()
mml-parse()
mml-generate-mime()
message-encode-message-body()
message-send-news(nil)
message-send-via-news(nil)
message-send(nil)
message-send-and-exit(nil)
call-interactively(message-send-and-exit)
Return value: (latin-iso8859-1 latin-iso8859-15 ascii)
mm-find-charset-region(696 1633)
* mm-find-mime-charset-region(696 1633)
* byte-code("..." [nil raw no-markup-p use-ascii warn charsets contents point tag struct looking-at "<#/multipart" "<#multipart" mml-read-tag mml-parse-1 "<#external" mml-read-part "<#part" "<#mml" part (type . "text/plain") t mml mm-find-mime-charset-region unknown-encoding mml-confirmation-set y-or-n-p "Message contains characters with unknown encoding. Really send?" "Use ASCII as charset?" delq error "Edit your message to remove those characters" 2 string-match "[^
\n]" mml-parse-singlepart-with-multiple-charsets nstruct multipart format "Warning: Your message contains more than %d parts. Really send? " "Edit your message to use only one charset" 1] 9)
* mml-parse-1()
mml-parse()
mml-generate-mime()
message-encode-message-body()
message-send-news(nil)
message-send-via-news(nil)
message-send(nil)
message-send-and-exit(nil)
call-interactively(message-send-and-exit)
(mm-mime-charset 'latin-iso8859-15) gibt nil zurück!
=> Ursache offensichtlich mm-mime-mule-charset-alist
back to srcdoc
(C) 1998-2017 Olaf Klischat <olaf.klischat@gmail.com>