現在、Linuxコマンドから次のようなメールを送信しています。
echo "Here is the link: file:///S:/some_doc.html" | mail -s "Here is some_doc.html" [email protected]
一部の電子メールクライアントでは、メッセージ本文の「file:/// S:/some_doc.html」がユーザーがクリックできるリンクになりますが、他のクライアントでは、文字列をコピーして貼り付ける必要があるプレーンテキストとして表示されます。 Webブラウザに。メールクライアントがリンクの処理方法を認識できるように、コマンドを変更してメッセージをHTMLにする方法を教えてください。
これによりメッセージへのリンクが取得されますが、HTMLではなくテキストのように扱われます。
echo "Here is the link to: <a href='file:///S:/some_doc.html'>some_doc.html</a>" | mail -s "Here is some_doc.html" [email protected]
私はそれが行われるのを見ました:
mail -a "Content-type: text/html;" -s Test [email protected] < mail_html.html
私はこれをUbuntuServer 10.04_x64で Gnu Mail Utils -> Postfix でテストしました。
メッセージ:
最良の方法は、Content-Type: multipart/alternative
とtext/plain
の部分を含むMIMEtext/html
メッセージを作成することです。
怠惰な場合は、Content-Type: text/html
(メッセージ本文にHTMLを直接挿入)で十分です。
...ただし、HTMLを表示できないメールクライアントがあることを忘れないでください。
どちらを選択しても、charset=utf-8
(Content-Type: text/html; charset=utf-8
のように)をタイプヘッダーに追加します。 (Unicode以外の文字セット(おそらくus-ascii
とiso-8859-1
を除く)はすべて悪です。)
送信:
Nathanielはmail -a "Content-Type: text/html"
を提案しましたが、これはGNU Mailutilsでのみ機能します。
より信頼性の高い方法は、メッセージsendmail
をパイプすることですが、すべてのヘッダーを自分で作成する必要があります。
[email protected]
echo -e "From: <$USER>\nTo: <$rcpt>\nDate: $(date "+%a, %d %b %Y %H:%M:%S %z")\nContent-Type: text/html; charset=utf-8\n\n<!DOCTYPE html>\n<p>Here is the link to: <a href=\"file:///S:/some_doc.html\">some_doc.html</a>" | sendmail -i "$rcpt"