UNIXのファイルにテキストがあります。 mail
コマンドを使用してそのファイルをメールに送信します。私が欲しいのはテキストが何らかの色で表示されるメールの本文にあります。メールはWindowsから開きます。どんな助けでも大歓迎です。
コンテンツをHTMLに変換し、メールのヘッダーに次のものが含まれていることを確認する必要があります
Content-Type: text/html; charset=UTF-8
これをどのように行うかは、「メール」コマンドがどのプログラムであるかによって異なり、実際には不可能な場合があります。スクリプトを変更して、代わりに次のような方法でメールをsendmailなどに挿入できます。
echo 'Content-Type: text/html; charset=UTF-8
Subject: My Subject
<html>
<b>Email Header</b>
<br /><br />
<font color="red">This text is red</font>
</html>' | sendmail [email protected]
これはやや大雑把な実装であり、調整しない限りスパムフィルターによってドロップされる可能性が高いことに注意してください。
Davidgoの良い答えのもう少し背景:
電子メール標準は、色またはフォントのサポートで始まりませんでした。したがって、どんなに頑張っても、受信者がどんな色でも見ることができるという保証はありません。
ただし、ほとんどのクライアントはメールを少し広範に解釈します。リッチテキストまたはWebページを送信した場合は、カラーで表示される可能性があります。または、特定のマークアップが本当に必要な場合は、それを画像として送信する必要があります(すべての欠点はありますが、テキストを選択したり編集したりできないことを意味します)。
Unixライクなプラットフォームからの基本的なメールは次のように送信できます。
sendmail [email protected] < myfile
または、猫が好きな場合、またはパイプから始める場合:
cat myfile | sendmail [email protected]
または、シェルを介したエコーから:
echo 'content here' | sendmail [email protected]
これらはすべて、件名、色、テキストマークアップなしでmyfileのコンテンツを送信します。単純なメールです。基本を理解することから始めるのは良い方法です。
ここで、Davidの回答に対して、テキストをHTMLとして扱うようにメールクライアントに指示する行を追加します( 'Content-Type:text/html)。ほとんどのメールクライアントはそれを喜んで認識します。一部(私がまだ疑わしい電子メールを読むために使用しているElmなど)はそうしません。
また、非常にユーザーフレンドリーな主題を追加します。
最後に、HTMLマークアップを使用します(<HTML>
と</HTML>
で始まり、太字のタグとフォント設定で色を設定します。この場合は赤ですが、「color = "」を使用して任意の色を指定できますFF0000 "形式(RGBの場合、この場合は赤、緑、青が最大になります)。
より複雑な可変メールが必要な場合は、シェルスクリプトでファイルにパーツを追加し、最初の方法(sendmail user <input)を使用して最終ファイルをメールで送信できます。
メールはWindowsから開きます。
ここではメールクライアントが重要です。 Thunderbirdは、これをWindowsでもLinuxやBSDでも問題なくレンダリングできると思います。同様に、WindowsとBSDの両方でmuttが失敗することを期待しています。代替テキストを使用してマルチパートメールを設計することは良い考えかもしれません。これについては RFC1341 を参照してください。