Message-id header
Hi!
I have found that some SMTP server (notably gmail) does not accepts a message without a proper message-id header.
I have wrote some simple code to generate the header's value following (more or less) suggestions in this document:
https://www.jwz.org/doc/mid.html
the actual code follow, please consider to add it to cl-smtp.
Bye an thanks! C.
(defparameter *base36-alphabet* "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ")
(defun encode-base-36 (number &optional (accum '()))
(if (<= number 0)
(coerce (reverse accum) 'string)
(let ((new-number (truncate (/ number 36)))
(remainder (rem number 36)))
(encode-base-36 new-number (push (elt *base36-alphabet* remainder)
accum)))))
(defun generate-mail-message-id (&optional (local-host (usocket::get-host-name)))
(format nil
"<~a~a.~a@~a>"
(encode-base-36 (get-universal-time))
(random 2048)
(random 2048)
local-host))