Nodemailer可以通过代理发送邮件吗?
当我在没有代理的情况下发送邮件时,它运行正常,但是当我通过代理发送邮件时,我有这样的错误:
{ [Error: connect ETIMEDOUT] code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect' }
{ [Error: socket hang up] code: 'ECONNRESET', sslError: undefined }
{ [Error: connect ETIMEDOUT] code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'connect' }
答案 0 :(得分:1)
是的,Nodemailer可以在没有第三方的情况下使用代理。 对于transporter方法,您需要添加'proxy'属性。
let transporter = nodemailer.createTransport({
host: 'smtp.example.com',
port: 465,
secure: true,
proxy: 'http://proxy-host:1234'
});
这应该做。您可以在Nodemailer Proxy Support
了解更多相关信息如果需要,您可以通过设置浏览器代理来绕过代理。 例如:如果是谷歌浏览器,
答案 1 :(得分:0)
我找到了一个解决方案,我使用mailgun通过代理发送邮件
'use strict';
var express = require('express');
var router = express.Router();
var mongojs = require('mongojs');
var api_key = 'key-xxxxxxxxxxxxxxxxxxxxxxxxxxx';
var domain = 'xxxxxxxxxxxxxxxxxx.mailgun.org';
var mailgun = require('mailgun-js')({apiKey: api_key, domain: domain});
var nodemailer = require('nodemailer');
var data = {
from: 'Excited User <me@samples.mailgun.org>',
to: 'xxxx@xxxxx.com',
subject: 'Hello',
text: 'Testing some Mailgun awesomness!'
};
...
router.get('/api/postEmail', function (req, res) {
mailgun.messages().send(data, function (error, body) {
console.log(body);
});
...