2016-08-04 176 views
0

我们开发了几个使用SendGrid发送电子邮件的Bluemix中托管的应用程序。自上周以来,所有这些应用程序在没有任何更改后都开始失败。从Bluemix发送电子邮件失败

事实证明,Bluemix开始超时请求SendGrid。我们认为这是SendGrid的问题,所以我们用亚马逊SES取代了服务,令我们沮丧的是,我们开始得到完全相同的错误。

这里是日志的样子:

enter image description here

我们整理了这篇简单的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 
+0

您发表您的用户,并通过检查出的代码。请删除它们。 –

+0

来自文档:“许多托管提供商和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 –

+0

@svpino我删除了证书。 –

回答