0
我们开发了几个使用SendGrid发送电子邮件的Bluemix中托管的应用程序。自上周以来,所有这些应用程序在没有任何更改后都开始失败。从Bluemix发送电子邮件失败
事实证明,Bluemix开始超时请求SendGrid。我们认为这是SendGrid的问题,所以我们用亚马逊SES取代了服务,令我们沮丧的是,我们开始得到完全相同的错误。
这里是日志的样子:
我们整理了这篇简单的NodeJS应用程序,让我们的错误,看看是否有人看到了什么问题,或者试图出来,并让我们知道是否这实际上是失败在不同的Bluemix帐户:
app.js
var express = require("express"),
app = express();
var port = process.env.VCAP_APP_PORT || 8080;
var nodemailer = require("nodemailer");
app.use(express.static(__dirname + '/public'));
app.get("/", function (request, response) {
var smtpTransport = nodemailer.createTransport("SMTP",{
host: 'smtp.sendgrid.net',
port: 25,
auth: {
user: "user",
pass: "password"
}
});
var mail = {
from: "[email protected]",
to: "[email protected]",
subject: "Send Email Using Node.js",
text: "Node.js send email test",
html: "<b>Node.js send email test</b>"
};
smtpTransport.sendMail(mail, function(error, resp){
if(error){
console.log(error);
response.write(error);
}
else{
console.log("Message sent: " + resp.message);
response.write("Message sent: " + resp.message);
}
smtpTransport.close();
response.end();
});
});
app.listen(port);
的package.json
{
"name": "ibm-email-nodejs",
"version": "0.0.1",
"description": "ibm email nodejs",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "~4.x",
"commander": "^2.6.0",
"http-post": "^0.1.1",
"http-proxy": "^1.8.1",
"nodemailer": "0.7.1"
},
"engines": {
"node": "5.9.1",
"npm": "3.7.3"
}
}
manifest.yml
applications:
- path: .
memory: 512M
instances: 1
domain: mybluemix.net
name: ibm-email-nodejs
host: ibm-email-nodejs
disk_quota: 1024M
command: node app.js
您发表您的用户,并通过检查出的代码。请删除它们。 –
来自文档:“许多托管提供商和ISP将端口25作为默认实践。尝试连接到smtp.sendgrid.net时,请记住端口25,2525,587和465都可供使用。您可以通过端口25,2525和587上的未加密或TLS进行连接。您还可以通过端口465上的SSL进行连接。请记住,许多托管提供商和ISP将端口25视为默认操作。如果是这种情况,请联系您的主机/ ISP,找出哪些端口已开放用于传出smtp中继。https://sendgrid.com/docs/Classroom/Basics/Email_Infrastructure/smtp_ports.html –
@svpino我删除了证书。 –