meteor で smtp.gmail を使うプログラムが、localhost で動いて、meteor.com で動かない
meteor deploy すると、標準では Mailgun を使うことになりますが、代わりに gmail を使いたいと思っています。最小限のテストプログラムで試したのですが、エラーが出てしまいます。
Error invoking Method 'sendMail': Internal server error [500]
どうすれば、gmailを使えるようにできるでしょうか。
※localhost(windows8.1)で同じコードを試すと、期待通りにメールを送れて、エラーも出ません。
※gmailのアカウントの方は、アカウント」>「ログインとセキュリティ」>「接続済みのアプリとサイト」>「安全性の低いアプリの許可: 有効」に設定しています。
// test.html
<head>
<title>test</title>
</head>
<body>
{{> test}}
</body>
<template name="test">
<input type="button" value="send mail">
</template>
// test.js
if (Meteor.isClient) {
Template.test.events({
'click [type="button"]':function(){
var dateTime = new Date();
console.log(dateTime);
Meteor.call('sendMail',dateTime);
}
});
}
if (Meteor.isServer) {
Meteor.startup(function () {
var gmailAccount = {'eml':'user@gmail.com','pwd':'************'};
var st = 'smtp://' + encodeURIComponent(gmailAccount.eml) + ':' + gmailAccount.pwd + '@smtp.gmail.com' + ':465/'; check(st,String);
process.env.MAIL_URL = st;
});
Meteor.methods({
'sendMail':function(dateTime){
var to = 'user@gmail.com'; check(to,String);
var from = 'user@gmail.com'; check(from,String);
var subject = 'test'; check(subject,String);
var text = 'Time:' + dateTime; check(text,String);
var sendObj = {'to':to, 'from':from, 'Reply-To':from, 'subject':subject, 'text':text};
Email.send(sendObj);
}
});
}