9

以下を使用して、ローカルホストでは機能するがサーバーでは機能しない電子メールを送信しています。

// server
Meteor.startup(function () {
    process.env.MAIL_URL="smtp://uername%40gmail.com:password@smtp.gmail.com:465/"; 
});

ログに次のエラーが表示されます (Google が何らかの理由でブロックしているようです。それを止める方法はありますか?

[162.243.52.235] 534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 l10sm1017845qae.41 - gsmtp
    at SMTPClient._actionAUTHComplete (/opt/meteor/app/programs/server/npm/email/main/node_modules/simplesmtp/lib/client.js:826:23)
    at SMTPClient._onData (/opt/meteor/app/programs/server/npm/email/main/node_modules/simplesmtp/lib/client.js:329:29)
    at CleartextStream.EventEmitter.emit (events.js:95:17)
    at CleartextStream.<anonymous> (_stream_readable.js:746:14)
    at CleartextStream.EventEmitter.emit (events.js:92:17)
    at emitReadable_ (_stream_readable.js:408:10)
    at _stream_readable.js:401:7
    at process._tickCallback (node.js:415:13)

これは、sends がメール送信を開始すると私が考えるイベントです。meteor が mailgun を使用するようにセットアップされていることは知っていますが、これを変更して、process.env なしで meteor の代わりに mailgun を使用する方法はありますか?

Template.forgotPassword.events({
    'submit #forgotPasswordForm': function(e, t) {
        e.preventDefault();

        var forgotPasswordForm = $(e.currentTarget),
            email = trimInput(forgotPasswordForm.find('#forgotPasswordEmail').val().toLowerCase());

        if (isNotEmpty(email) && isEmail(email)) {
            Accounts.forgotPassword({email: email}, function(err) {
                if (err) {
                    if (err.message === 'User not found [403]') {
                        Session.set('alert', 'This email does not exist.');
                    } else {
                        Session.set('alert', 'We\'re sorry but something went wrong.');
                    }
                } else {
                    Session.set('alert', 'Email Sent. Please check your mailbox to reset your password.');

                }
            });
        }
        return false;
    },

    'click #returnToSignIn': function(e, t) {
        Session.set('showForgotPassword', null);
        return false;
    },
});

すでにインストールされているパッケージ

ここに画像の説明を入力

4

3 に答える 3

9

同様の問題が発生しました。メソッド send email はローカルで機能しますが、ホスティング モジュールでは機能しません。私の場合、これは Google のセキュリティがブロックされていたことが原因でした (私がフランスに住んでいる間、シアトルから私の Gmail アカウントにアクセスすることは、おそらく Google には怪しいように見えました)。Gmail アカウントへの厳密性の低い接続を承認するために、いくつかのページを調べました。このページで私は閉塞を見ました。そこで、安全性の低いアプリケーション許可し、アカウントへのアクセスを許可しました

それが誰かを助けるなら..

于 2015-08-07T10:18:31.963 に答える