web-dev-qa-db-ja.com

Ubuntuサーバーから既存のSMTPホストから電子メールを送信する

私の問題は非常に単純であるように感じますが、私はかなり長い間試してきましたし、それをクラックしていません。あなたは経験豊富なサーバーの人たちはおそらくこれを笑うでしょうが、私は最終的に私が助けを必要とする時点にいます。

12.04 LTSを実行している小さなボックスがあり、いくつかのステータスチェックのスクリプトを作成し、サーバーに電子メールを送信して、cronでこれをスケジュールさせたいと思っていました。

私は基本的に、コマンドラインを介して既存のSMTPを介して送信するためにThunderbirdと同じくらい簡単に設定できるコマンドラインメールクライアントが必要です。私のbashスクリプトに簡単に組み込むことができるもの。

私はすでに、電子メール、SMTP、MTAなどのゴミを処理するリモートホストを持っています。社内の他の全員が既に使用している電子メールがある場合に、電子メールを送信するためだけにリレーを設定することは特にしたくありません。私は試しましたが、理解できない側面が多すぎて、リモートホストにこれらのことをするためにすでにお金を払っているのに、なぜローカルのものをセットアップする必要があるのか​​分かりません。

どうしてもsendmailまたはpostfixを設定する必要がある場合は、そうする必要がありますが、単純な代替手段に感謝します。私はこの時点で実質的に何にでもオープンです。

1
ezgoodnight

サードパーティのSMTPサーバー(たとえば、ISPから提供された)を介して電子メールを送信する場合、ssmtpをインストールできます。これは、Postfix/Sendmailのドロップイン代替品ですが、専用ですリモートSMTP経由でメールを送信するという正確なタスクに対応しているため、設定がはるかに簡単です。次に、次のようにmailxコマンドを使用して電子メールを送信できます。

echo "Mail." | mailx -s "Subject" [email protected]

編集:電子メールは非常に複雑なビジネスです...覚えておくべきこと:

上記のコマンドは、送信者アドレス(ie、受信者が電子メールの「From」フィールドに表示するアドレスを指定しないことに注意してください。クライアント)。デフォルトでは、送信者アドレスは、ローカルマシンでのログイン名、@、ローカルマシンの完全なホスト名の順になります。たとえば、私のマシンでは、ログイン名はfirasであり、ホスト名はnomoです。

firas@nomo ~ % whoami firas firas@nomo ~ % hostname -f nomo

したがって、上記のコマンドでメールを送信すると、firas@nomoからわかるように、送信者のアドレスはmail.logになります。

firas@nomo ~ % tail -n 3 /var/log/mail.log Jun 9 20:37:46 nomo sSMTP[2203]: Creating SSL connection to Host Jun 9 20:37:48 nomo sSMTP[2203]: SSL connection using RSA_AES_128_CBC_SHA1 Jun 9 20:37:50 nomo sSMTP[2203]: Sent mail for firas@nomo (221 2.0.0 esmtp3.es.uci.edu closing connection) uid=1000 username=firas outbytes=364

ドメイン名nomoは有効なドメインではないため、大多数のサーバーは(スパム対策として)この電子メールの中継を拒否します。幸いなことに、ssmtp.confにはオプションがあり、メールを送信するときにsSMTPが使用する任意のドメインを指定できます。つまり、これはrewritedomainオプションなので、ssmtp.confにこれがある場合:

rewriteDomain=fkraiem.org

送信者のアドレスは[email protected]になります。

通常、上記で十分です(つまり、送信者アドレスに有効なドメインがある限り、サーバーはメールを中継する必要があります)。ただし、一部の電子メールプロバイダーは熱心であり、登録した電子メールアドレスのみを使用できます。つまり、上記のようにドメイン名を変更することに加えて、ローカルマシンでログイン名を変更するか、プロバイダに新しいアドレスを登録する必要がある場合(許可されている場合)、最終アドレスが登録住所。

任意の送信者アドレスを指定する別の方法は、ssmtp.conffromlineoverrideオプションをYESに設定し、mailx-aオプションを使用することです。

echo "Mail." | mailx -s "Subject" -a 'From: [email protected]' [email protected]

ただし、これは非標準であり、Ubuntu(および他のGNUベースのシステム)以外のOSでは動作しない可能性があります。 muttなど、より洗練された他のクライアントを使用することもできます。

1
fkraiem

sendemail を検討しましたか? (メールを送る)

Description-en:軽量のコマンドラインSMTP電子メールクライアント

2
AnFi