为获得完整的注册确认,我正在尝试向要唱歌的用户发送确认邮件。我正在使用node.js,并且对于邮件发送,我已经尝试了nodemailer和mailgun-js。在 localhost 上进行测试时,无论使用nodemailer / mailgun还是一切都很好,电子邮件可以完美发送。但是,一旦我部署(在装有ubuntu的 azure虚拟机上),电子邮件就不会发送。我已经尝试了许多不同的方法来解决这个问题,但是没有成功:都具有相同的行为:在本地主机上发送邮件,但是从每个特定文档中以相同的代码从实时服务器运行时什么也没有发生。什么可能阻止服务器发送电子邮件?
一个更重要的线索:在服务器上,将命令行与swaks一起使用,会成功发送邮件。 也是一个独立的js文件,其中包含用于从服务器发送电子邮件的代码。
var API_KEY = 'MY_API_KEY';
var DOMAIN = 'MY_DOMAIN_NAME';
var HOST = 'MY_EU_HOST';
var mailgun = require('mailgun-js')({apiKey: API_KEY,domain: DOMAIN,host: HOST});
const data = {
from: 'Excited User <me@samples.mailgun.org>',to: 'foo@example.com',subject: 'Hello',text: 'Testing some Mailgun awesomeness!'
};
mailgun.messages().send(data,(error,body) => {
console.log(body);
});
已更新:使它起作用的唯一方法是使用mailgun.js而不是mailgun-js。问题仍然存在,因为隔离发送邮件节点脚本也适用于mailgun-js。问题是 mailgun.js 在该项目中可以运行,而 mailgun-js 则不能。对于我来说,目前还不清楚为什么会发生这种情况,并且仍然会激怒两者之间的差异。为了说明这个奥秘,mailgun official documentation在其示例中使用了require('mailgun-js')
和否 require('mailgun.js')