直接質問:Perlが電子メールを送信できるようにします。単純なメールサーバーをセットアップするために、どのパッケージをインストールする必要があります。受信の必要はありません送信のみ。最適な場合、GmailのSMTPを介して転送できますか?
背景:私はPerlで記述された夜間ビルドスクリプトを持つプログラマーです。ナイトリービルドの結果をメールで送信したい(特にエラーがある場合)。
PerlパッケージMail::Sendmail
について簡単に読みましたが、他にもっと適切なものがある場合は、教えてください!!
簡単なaptget install sendmail
を試しましたが、うまくいかないようです。次のエラーが表示されます。
サーバーは言いました:421 4.3.0 collect:./dfp1PFXl7W020719(bfcommit、uid = 0、gid = 120)を書き込めません:そのようなファイルまたはディレクトリのメッセージ送信エラーはありません(421 4.3.0 collect:./dfp1PFXl7W020719(bfcommit、uid = 0、gid = 120):そのようなファイルまたはディレクトリはありません
私はこの問題を少しグーグルで調べ、いくつかのことを試しました-/ etc/mail/trusted-usersなどにユーザー名を追加しましたが、役に立ちませんでした。
つまり、送信メールサーバーをセットアップするための簡単な指示を提供できれば、私は最も感謝しています。私は本当に詳細を理解していませんが、理解しているように、既存のSMTPサーバーを介してメールを転送する必要があります-必要に応じてGmailアカウントを使用できます(とにかくログを送信したい場所です)。どんな提案でも大歓迎です。
また、Net :: SMTPを見ると、sendmailなどの外部プログラムを必要とせずにSMTPメッセージを送信できます。これは純粋なPerlソリューションであるため、Ask Ubuntuのトピックから少し外れているかもしれませんが、望ましいと思うかもしれません。 Net :: SMTPはPerl-modulesパッケージによって提供されます。これはデフォルトでインストールする必要があります。
それらはすべて、仕事には多すぎるツールです。 ssmtpはこれを行いますが、これだけです。
Sudo apt-get install ssmtp
(インストールされている場合、これはpostfixまたはsendmailを削除します。)
sudoedit /etc/ssmtp/ssmtp.conf
そして、そのファイルの内容:
[email protected]
Mailhub=smtp.gmail.com:465
RewriteDomain=gmail.com
AuthUser=your_gmail_username # (before the @gmail.com part)
AuthPass=your_gmail_password
FromLineOverride=Yes
UseTLS=Yes
Dovecot-postfixのインストールと設定は簡単だと今でも維持しています。
インストールできるシンプルなメールサーバーはありますか? に対する回答に詳細があります。
そこで、EmmySはphpmail機能でこれを機能させることができました。
Dovecot-postfixはおそらくあなたが必要とするよりも重いリフティングを行いますが、以下の後にいくつかの設定項目を取ります:
Sudo apt-get install dovecot-postfix
多数のメールサーバーが実行されているようですが、sendmailをシャットダウンしてみてください。
Sudo /etc/init.d/sendmail stop
そして、あなたのSMTPポート(25)をチェックします
Sudo lsof -i -P -R | grep ':25 '
ポート25が表示されている場合は、別のプロセスが実行されているので、停止してみてください。 pidは、出力の3列目にあります。
Postfixを適切に設定するには:低レベルのdebconfに設定します
Sudo dpkg-reconfigure debconf
ダイアログを選択してから、低レベルの警告を選択します。それからpostfixをインストールします
Sudo apt-get install postfix
「インターネットサイト」プロファイルで標準オプションを選択します。以前にpostfixをインストールした場合は、次の方法で再構成できます。
Sudo dpkg-reconfigure postfix
楽しい!
Perl側では、SSMTPなどのローカルリレーまたは他の同様のプログラムがある場合、Perl :: SendMailが機能します。認証を行うようには見えません。
Perlを使用してGMAIL経由でメールを送信 に投稿を見つけました。コードにはGoogleの認証情報が含まれることに注意してください。 (SSMTPまたは使用する他のリレーと同様)
ISPのリレーサーバーを使用してメールを送信することをお勧めします。その場合、Perl :: Sendmailをスタンドアロンで使用できます。
推奨される解決策:Postfixは、メールサーバーを必要とする多くのプログラムによって依存関係としてインストールされます。まだインストールされていない場合は、Exim4をインストールします。 ISPのリレーをスマートホストとして使用して、「ローカルメールではなくスマートホストから送信されるメール」用にサーバーを構成します。ユーザーIDの/ etc/email-addressesを構成します。また、Gmailアカウントにメールを転送するように/ etc/aliasesを構成します。
Cronを使用して実行すると、stdoutまたはstderrへの出力がメールで送信されます。スクリプトからメールを送信する場合は、mailxを使用してメールを送信することもできます。