summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2017-01-26 22:51:19 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2017-01-26 22:51:19 +0100
commit77bbca8c82f6e553c42abbfafca28f55fc995d00 (patch)
tree5e8fac2a9a6a1054edb9d4af0951e8226ac34f14 /lisp
parent47e82854ba12d5ac79ed66b90ba727e1b1c44d52 (diff)
downloademacs-77bbca8c82f6e553c42abbfafca28f55fc995d00.tar.gz
emacs-77bbca8c82f6e553c42abbfafca28f55fc995d00.tar.bz2
emacs-77bbca8c82f6e553c42abbfafca28f55fc995d00.zip
Fill too long mail headers
* lisp/gnus/message.el (message--fold-long-headers): New function to fold too-long headers (bug#21608). (message-send-mail): Use it to fill headers longer than 998 characters (which is the protocol limit).
Diffstat (limited to 'lisp')
-rw-r--r--lisp/gnus/message.el11
1 files changed, 11 insertions, 0 deletions
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 50d2380dd7b..e45ab1080a5 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -4552,6 +4552,9 @@ This function could be useful in `message-setup-hook'."
(forward-line 1)
(unless (y-or-n-p "Send anyway? ")
(error "Failed to send the message")))))
+ ;; Fold too-long header lines. They should be no longer than
+ ;; 998 octets long.
+ (message--fold-long-headers)
;; Let the user do all of the above.
(run-hooks 'message-header-hook))
(setq options message-options)
@@ -4648,6 +4651,14 @@ If you always want Gnus to send messages in one piece, set
(setq message-options options)
(push 'mail message-sent-message-via)))
+(defun message--fold-long-headers ()
+ (goto-char (point-min))
+ (while (not (eobp))
+ (when (and (looking-at "[^:]+:")
+ (> (- (line-end-position) (point)) 998))
+ (mail-header-fold-field))
+ (forward-line 1)))
+
(defvar sendmail-program)
(defvar smtpmail-smtp-server)
(defvar smtpmail-smtp-service)