And*_*son 9 javascript gmail smtp meteor mailgun
我使用以下内容发送适用于localhost而不是我的服务器的电子邮件.
// server
Meteor.startup(function () {
process.env.MAIL_URL="smtp://uername%40gmail.com:password@smtp.gmail.com:465/";
});
Run Code Online (Sandbox Code Playgroud)
我在我的日志中得到了跟随错误(似乎谷歌因某种原因阻止它,有没有办法阻止它?
[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)
Run Code Online (Sandbox Code Playgroud)
这是我认为发送的事件启动电子邮件发送.我知道meteor现在设置为使用mailgun,有没有办法修改它只是使用mailgun而不是meteor而没有process.env?
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;
},
});
Run Code Online (Sandbox Code Playgroud)
已安装的软件包
您需要对您的用户名和密码进行URL编码,否则Meteor会将两个"@"符号相互混淆.
你可以在你的JS控制台(带encodeURIComponent(username)
)中执行此操作,通常最终得到类似的东西
user%40gmail.com:password@smtp.gmail.com:465
Run Code Online (Sandbox Code Playgroud)
您可以以相同的方式使用Mailgun,或Mandrill或任何其他smtp提供程序.它只是导致问题的用户名格式.
小智 8
我遇到了类似的问题.该方法在本地发送电子邮件,但不在托管模数上发送.就我而言,这是由于一个阻止谷歌安全(从西雅图访问我的gmail帐户,而我住在法国可能看起来很可疑谷歌).我浏览了几页来授权与我的Gmail帐户建立不太严格的连接.在这个页面上,我看到了堵塞.所以我允许安全性较低的应用程序并允许访问我的帐户.
如果它可以帮助某人..
只需使用电子邮件包
meteor add email
然后发送电子邮件将有效.我的配置中使用端口587.
Meteor.startup(function () {
process.env.MAIL_URL = 'smtp://user%40gmail.com:password@smtp.gmail.com:587';
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6971 次 |
最近记录: |