コマンドラインからメールを素早く送信したい。これを行うには、おそらくさまざまな方法があると思います。
Linuxターミナルからこれを行う簡単な方法(おそらくbashシェルですが、何でもできるはずです)と、Windowsでこれを行う別の方法を探しています。コマンドラインで直接電子メールを作成できるようにしたい、またはメッセージをコマンドラインプログラムにパイプする柔軟性を持たせたい. これをどのように行うつもりですか?小さなスクリプトがある場合も問題ありません。
コマンドラインからメールを素早く送信したい。これを行うには、おそらくさまざまな方法があると思います。
Linuxターミナルからこれを行う簡単な方法(おそらくbashシェルですが、何でもできるはずです)と、Windowsでこれを行う別の方法を探しています。コマンドラインで直接電子メールを作成できるようにしたい、またはメッセージをコマンドラインプログラムにパイプする柔軟性を持たせたい. これをどのように行うつもりですか?小さなスクリプトがある場合も問題ありません。
$ echo "This is the email body" | mail -s "This is the subject" me@email.com
または:
$ cat | mail -s "A few lines off the top of my head" me@here.com
This is where my
multiline
message would go
^D
^D - ctrl+を押すことを意味しますd
メールを使用できます:
$mail -s <subject> <recipients>
次に、メッセージを入力し、ピリオドのみの行で終了します。これにより、完了したことが通知され、メッセージが送信されます。
電子メールを STDIN からパイプすることもでき、電子メールのテキストとして送信されます。
$<mail-generating-program> | mail -s <subject> <recipients>
このアプローチに関する注意点 - コンピュータがインターネットに接続されていて、DNS 設定が適切に設定されていない限り、メッセージへの返信を受け取ることはできません。POP または IMAP 電子メール アカウントにリンクできる、より堅牢なコマンドライン プログラムについては、pineまたはmuttを調べてください。
Windows用のこのsendmailバージョンも使用できます。使い方は非常に簡単で、標準の UNIX ライクな動作です。速い。インストールは必要ありません。EXE がシステム上にある場所で呼び出すだけです。
メールの作成:
echo To: you@example.com, me@example.com >> the.mail
echo From: them@example.com >> the.mail
echo Subject: This is a SENDMAIL notification >> the.mail
echo Hello World! >> the.mail
echo This is simple enough. >> the.mail
echo .>> the.mail
ファイルの送信:
\usr\lib\sendmail.exe -t < the.mail
type the.mail | C:\Projects\Tools\sendmail.exe -t
Windows コマンド ラインからこれを行う場合は、CMD プロンプトから使用できるblatというツールがあります。
PowerShell の方が少し楽しいです。PowerShell は .NET Framework にアクセスできるため、System.Net.Mail のクラスを使用して電子メールを送信できます。PowerShell Community Script Repositoryにサンプル スクリプトがあります。
IIRCmail
またはほとんどの電子メール ライブラリを使用するには、メール転送エージェント (MTA) を構成する必要もあります。Sendmailは最もよく知られていますが、構成に関しては本当に豚です。Exim、Qmail、およびPostfixはすべて、より現代的な人気のある代替手段です。
また、メールを送信するだけで受信できない軽量の MTA もあります: nullmailer、mstmp、ssmtp など。
Postfix は Ubuntu のデフォルトです。この wiki 記事では、設定方法について説明しています。ローカル アドレスからの転送のみを許可してください。
Linux サーバーを使用しているが、メールが利用できない場合 (共有サーバーの場合)、単純な PHP / Perl / Ruby (利用可能なものに応じて) スクリプトを記述して、同じことを行うことができます。このような:
#! /usr/bin/php
<?php
if ($argc < 3) {
echo "Usage: " . basename($argv[0]) . " TO SUBJECT [CC]\n";
exit(1);
}
$message = file_get_contents('php://stdin', 'r');
$headers = $argc >= 4 ? "Cc: $argv[3]\r\n" : null;
$ret = mail($argv[1], $argv[2], $message, $headers);
exit($ret ? 0 : 1);
次に、次のように呼び出します。
mail me@example.com test < message
メール プログラムを起動する場合は、次の記事を参照してください。