On Tue, Apr 18, 2017 at 09:16:45PM +0300, Sergey Poznyakoff wrote: > Jean Louis <bugs@gnu.support> ha escrit: > > > I am compiling and will let you know. > > Thanks. I'm looking forward to it. > > > The email sending should be by standard, whatever Yahoo does, so I > > hope that with my request, you did not disturb the standards of > > sending such multipart emails. > > That's no problem, standards often leave sufficient leeway for > misunderstanding between client and server. The case we're handling is > just an example of this. Interoperability is very important, and I > appreciate very much your help ( and perseverance :) ) in resolving > this problem.
Thank you. It is working now in Yahoo, I can see the message. It looks like charset is being set automatically? The HTML file shows iso-8859-1 and I just hope it does not disturb vieweing the HTML file which has inside UTF-8 settings, I still think it can disturb it. It can be that I caused this problem by adding the Content-Disposition or by not using correctly the mail utility. Below you can find how I am using it. ;;; GNU Mailutils functions ;;; echo "Hello" | mail -a "Date: `/bin/date +'%a, %d %b %Y %T %z'`" -a "From: Mr. John Doe <d...@example.com>" -E 'set record=maildir:~/Maildir/d...@example.com' -s "Test (DELETE ME)" admin@localhost (defun mu-set-record (maildir) (if maildir (format nil " -E 'set record=maildir:~~/Maildir/~a' " maildir) nil)) (defun mu-subject (subject) (format nil " -s '~a' " subject)) (defun mu-from (name from) (format nil " -a \"From: ~a <~a>\" " name from)) (defun mu-header-unicode () (concatenate 'string " -a \"Content-Type: text/plain; charset=utf-8\" " " -a \"Content-Disposition: inline\" " " -a \"Content-Transfer-Encoding: 8bit\" ")) (defun mu-html-alternative (file) (if (not (zerop (length file))) (format nil " --alternative --content-type=text/html --attach=~a" file) "")) (defun mu-to (name to) (setf name (substitute #\- #\@ name)) (setf name (substitute #\. #\, name)) (setf name (substitute #\Space #\. name)) (if (> (length name) 0) (format nil " \"~a <~a>\" " name to) (format nil " \"~a\" " to))) (defun mu-date () (format nil " -a \"Date: `/bin/date +'%a, %d %b %Y %T %z'`\" ")) (defun mu-attach (file) (if (zerop (length (namestring file))) "" (format nil " -A \"~a\" " file))) (defun mu-attachments (attachments) (if (listp attachments) (format nil " ~{~a~} " (map 'list #'mu-attach attachments)) (mu-attach attachments))) (defun mu-body-type (type) (format nil " --content-type=~a " type)) (defun mu-mail (&key from-name from-email to-email (to-name "") subject (set-record to-email) body (attachments "") (html-alternative "") (test nil) (body-type "text/plain")) (let ((mu-mail (concatenate 'string "mail -E \"unset askcc\" " (mu-date) (mu-header-unicode) (mu-from from-name from-email) (mu-set-record set-record) (mu-subject subject) (mu-html-alternative html-alternative) (mu-attachments attachments) (mu-to to-name to-email) (mu-body-type body-type) ))) (if test (format t "~%FROM: ~a ~a, TO: ~a ~a, SUBJECT: ~a~%" from-name from-email to-name to-email subject) (values (with-input-from-string (s body) (uiop:run-program mu-mail :input s :external-format uiop:*utf-8-external-format*)) mu-mail)))) ;; (princ (cadr (multiple-value-list ;; (mu-mail :from-name "Jean Louis" ;; :from-email "y...@example.com" ;; :to-email "exam...@yahoo.com" ;; :to-name "Jean Louis" ;; :subject "Hello there" ;; :body-type "text/plain" ;; :body "Text message here čekaj ™ ® " ;; :html-alternative "/home/data1/protected/public_html/index.html") ) )) ;; :attachments (list "/tmp/file" "/tmp/anotherfile") and this one I use to send email by using makemime utility: ;; (ql:quickload "cl-rfc2047") (defun makemime-send (text html &key from-name from-email to-name to-email subject) (let* ((text-file "/dev/shm/text-file") (html-file "/dev/shm/html-file") (text-file (progn (alexandria:write-string-into-file text text-file :if-does-not-exist :create :if-exists :supersede) text-file)) (html-file (progn (alexandria:write-string-into-file html html-file :if-does-not-exist :create :if-exists :supersede) html-file)) (makemime-file "/dev/shm/makemime") (makemime-set (alexandria:write-string-into-file (format nil "-j ( -m multipart/alternative -a Mime-Version: 1.0 -a From: ~a <~a> -a To: ~a <~a> -a Subject: ~a -a Content-Disposition: inline -e quoted-printable -C utf-8 ( -c text/plain -C utf-8 ~a ) ) ( -c text/html -N HTML -C utf-8 ~a ) " (cl-rfc2047:encode from-name) from-email (cl-rfc2047:encode to-name) to-email subject text-file html-file) makemime-file :if-exists :supersede :if-does-not-exist :create)) (makemime (slurp-stream-io-command "makemime @-" makemime-set)) (sendmail (format nil "/usr/bin/sendmail -F \"~a\" -f ~a" from-name from-email))) (string-to-command sendmail makemime))) ;; (send-example) (defun send-example () (makemime-send "Hello čč" "<!doctype html public \"-//W3C//DTD HTML 4.0 Transitional //EN\"> <html> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"> <title></title> </head> <body> <h2>Hello there</h2> <p>http://www.google.com</p> <p>This is some text here. č</p> </body> </html>" :from-name "Jean" :from-email "y...@example.com" :to-name "Mr. L č™''" :to-email "exam...@yahoo.com" :subject "Hello there čč ™ omasdans kjnaksnd kjansdjkn akjnd jknajksnd ajksns")) ;; (send-example) _______________________________________________ Bug-mailutils mailing list Bug-mailutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-mailutils