javascript - 环回电子邮件连接器连接 ETIMEDOUT 错误
问题描述
我看到在电子邮件连接器上使用电子邮件连接器的环回文档 我在 datasources.js 中的电子邮件数据源如下:
"emailDataSource": {
"name": "emailDataSource",
"connector": "mail",
"transports":[{
"type":"SMTP",
"host": "stmp.gmail.com",
"secure":true,
"port":50,
"auth":{
"user":"test@gmail.com",
"pass":"pass"
}
}]}
还有我在 model-config.json 中的配置
"Email":{
"dataSource":"emailDataSource"}
这是我使用远程方法对模型 js 文件的测试:
MyModel.orderproduct = function(id, email, cb){
MyModel.app.models.Email.send({
to: email,
from: 'test@gmail.com',
subject: 'test subject',
text : 'my text',
html : 'my <em> html </em>'
}, function(err, mail){
console.log('email sent!' + mail);
cb(err);
});
}
MyModel.remoteMethod('orderproduct',{
accepts:[{arg:'id',type : 'string', required: true},
{arg: 'email', type : 'string', required : true}],
http: {path : '/product/:id', verb : 'get',source: 'query'},
return:{arg : 'res', type : 'Object'}
});
我的远程方法获得了请求成功的状态。但我从邮件连接器组件收到错误:
{"error": {
"statusCode": 500,
"name": "Error",
"message": "connect ETIMEDOUT 125.235.4.59:50",
"errno": "ETIMEDOUT",
"code": "ECONNECTION",
"syscall": "connect",
"address": "125.235.4.59",
"port": 50,
"command": "CONN",
"stack": "Error: connect ETIMEDOUT 125.235.4.59:50\n at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1189:14)"
} }
有人请提供一些使用 Loopback 框架的邮件连接器的高级或教程。谢谢~
解决方案
问题出在SMTP
服务器配置上。端口号应该465
代替50
. 使用以下配置
"transports": [{
"type": "SMTP",
"host": "smtp.gmail.com",
"secure": true,
"port": 465,
"auth": {
"user": "name@gmail.com",
"pass": "pass"
}
}]
参考:https ://loopback.io/doc/en/lb3/Email-connector.html#using-gmail
推荐阅读
- excel - 嵌套的直到循环如何工作?
- reactjs - 在 AsyncStorage 或 redux 中存储全局数据的最佳方式?
- angular - 按用户过滤mongodb数据
- sequelize.js - 如何在 apollo graphql 服务器中编写解析 graphql 过滤器
- reactjs - .tsx 的渲染方法中的 Ts ignroe
- verilog - 在另一个模块中启动模块时出现问题
- php - CakePHP 3.6.14:引导表按 html 而非文本排序
- jquery - 使用jquery查找兄弟元素的值
- date - 计算给定R中特定年份的两个日期之间的周数
- javascript - 如何让屏保根据时间出现和消失?