8

私はしばらくの間muttを使用して、以下を使用してpdf添付ファイル付きのプレーンテキストの電子メールを送信してきました。

mutt -s "Subject" -a file.pdf <mybody.txt

および添付ファイルのないhtmlメールは以下を使用します。

mutt -e "my_hdr Content-Type:text / html" -s "Subject" <mybody.html

しかし、私は今、PDFを添付したHTMLメールを送信したいと思っています。

mutt -e "my_hdr Content-Type:text / html" -s "Subject" -a file.pdf <mybody.html

動作しません。

htmlとエンコードされたpdfの両方、およびそれらのヘッダーは、電子メールの本文にプレーンテキストとして表示されます。

誰もがこれを行う方法を知っていますか?

乾杯

ゲイリー

4

2 に答える 2

9

カレブ・ロジャー・デイビス

Muttバージョン:1.5.21

いくつかの調査と同僚の助けを借りて、これを機能させることができました(htmlファイルを本文とpdfの添付ファイルとして送信します)。

.htmlファイルと.pdfを別々のファイルとして持っています。送信する前に、.htmlファイルでキーワードの置換(顧客名の置換など)を行います。

動作するbashスクリプトは次のとおりです。

誰かが興味を持っていれば、これをsendmailでも機能させることができると思います。

#!/bin/bash
START=`date`

# --------------------------------------------------------------------------------------
# can be comma delimited list of email addresses
FROM=me@mycom.com
TO=me@mycom.com

subject="Monthly PDF report"
attachments="../src/test/resources/my.pdf ../src/test/resources/my2.pdf"

html_file="../src/main/resources/email_template.html"

# --------------------------------------------------------------------------------------
# send html with pdf attachment
# You can send additional attachments, the attachment list can be terminated with the "--"
mutt -e "set content_type=text/html" -s "$subject" $TO -a $attachments -- < $html_file

END=`date`
echo "START=$START"
echo "END=$END"
于 2014-03-04T17:55:34.510 に答える
7

あなたは本当にこれを行うことはできません。Muttは、プログラムでメッセージを送信するためのものではなく、インタラクティブなメールクライアントを目的としています。メッセージを送信するためのコマンドラインフラグは、マイナーなアドオンとしてのみ存在し、その方法では不可能なことがたくさんあります。

このmy_hdrコマンドは、のようなMIMEヘッダーを設定するために使用されることは想定されていませんContent-Type。添付ファイルを含めなくても、実際には機能しません。2番目のコマンドからのメッセージには2つのContent-Typeヘッダーがあります。muttが生成する最初のメッセージはメッセージであることを示しtext/plain、2番目のメッセージは指定したものです。メッセージのチェックに使用しているクライアントがヘッダーを見ているだけです。私の場合、muttはそのメッセージをHTMLとして表示しますが、thunderbirdはレンダリングされていないドキュメントを表示します。

HTMLの送信と添付ファイルを組み合わせようとすると、同じことが起こります。複数のContent-Typeヘッダーがあります。1つ目は、メッセージがであると言っているmuttからのものmultipart/mixedで、2つ目は、であると言っているものtext/htmlです。私のテストでは、muttは再び2番目のヘッダーを尊重するため、添付ファイルを含むメッセージ全体をHTMLとしてレンダリングしようとします。Thunderbirdは再び最初のContent-Typeヘッダーを尊重し、HTMLと添付ファイルの2つの部分を検出しますが、HTML部分には、HTMLContent-Typeであることを指定する独自のヘッダーがないため、そのようにレンダリングされず、代わりに生のソースが示されています。

HTMLとPDFの両方を添付ファイルとして、本文を空にして送信することで、ある程度近づけることができます。

mutt -s "Subject" -a mybody.html -a file.pdf -- user@example.com < /dev/null

ただし、より複雑なメッセージをプログラムで送信するように実際に設計されたツールを使用する方がよいでしょう。

于 2012-11-29T15:49:50.700 に答える