4

1 つの Heroku ワーカーで実行される node.js-App では、時々メールを送信する必要があります。ロジックは次のとおりです。

var transporter = Email.createTransport({
    service: 'yahoo',
    auth: {
        user: process.env.CRAWLER_MAIL,
        pass: process.env.CRAWLER_PWD
    }
});
transporter.sendMail({
                            from: process.env.CRAWLER_MAIL,
                            to: process.env.CRAWLER_RCVR_MAIL,
                            subject: 'subject',
                            text: 'text'
                        }, function(err, result) {
                            if (err !== null) {
                                console.log(err);
                            } else {
                                ...
                            }
                        });

私はこれをテストしましたがforeman start、うまくいきました。それにもかかわらず、Heroku にデプロイされると、トランスポーターは常にステータス コード '564 : メッセージを配信できませんでした。テキストを追加して、メッセージを再送信してください。

process.env.正しい値を保持します。私はそれをチェックしましたtext。常に文字列です。

何が間違っている可能性がありますか?

4

3 に答える 3

3

アカウントの詳細を使用して問題を再現できませんでした。

送信者/受信者の電子メールに関連している可能性はありますか? どちらも @yahoo.com のアドレスですか? フォーラムでは、yahoo グループのメールが特に機能せず、そのエラーが発生するという話題がありました。Yahoo が最近DMARCポリシーを変更したことと関係があります。

Nodemailerは、サブモジュールnodemailer-wellknownから定義済みの「既知の」サービスをロードします

これは、 https : //github.com/andris9/nodemailer-wellknown/blob/master/services.json#L160 で使用service: 'yahoo'するときにロードされる現在の定義です。createTransport()

試してみる価値のあるいくつかのこと:

  • SMTP サーバーを に切り替えますplus.smtp.mail.yahoo.com
  • ユーザー名の有無を試してください@yahoo.com
  • エイリアスではなく、実際のメール アドレスから送信していることを確認してください。

Nodemailer アプリで Heroku の SMTP にMandrillを使用しています。

非常に信頼性が高く、毎月送信される最初の 12,000 メールは無料です!

于 2014-08-20T07:26:34.680 に答える
0

このコードを試してください:

私はそれが同じに見えることを知っていますが、あなたの問題を解決するかもしれない小さな変更があります. フォアマンスタートでうまくいったので試してみて、うまくいったかどうか教えてください...

var nodemailer = require('nodemailer');
var transporter = Email.createTransport({
service: 'yahoo',
auth: {
    user: 'process.env.CRAWLER_MAIL',
    pass: 'process.env.CRAWLER_PWD'
}
});
transporter.sendMail({
from: 'process.env.CRAWLER_MAIL',
to: 'process.env.CRAWLER_RCVR_MAIL',
subject: 'subject',
text: 'text'
 });
于 2014-08-21T11:07:40.383 に答える