我用node.js smtp-server创建了一个测试smtp服务器。 我运行了托管公共IP地址的smtp服务器,我从gmail发送电子邮件到我的自定义域。
它不能很好地运作。 smtp服务器发出错误。
S : 530 Error: authentication Required.
我的来源
var SMTPServer = require('smtp-server').SMTPServer;
var SERVER_PORT = 25;
var SERVER_HOST = 'exam.example.com'; //for example
var options = {
logger: true,
size: 10*1024*1024,
authMethods: ['PLAIN'],
banner: 'My Server',
onAuth: function(auth, session, callback) {
if(auth.username !== 'testuser' || auth.password !== 'testpass') {
return callback(new Error('Invalid username or password'));
}
callback(null, {user: 'testuser'}); //where 123 is the user id or similar property
},
onConnect: function(session, callback) {
console.log("onConnect : " + session.remoteAddress);
console.log("session : " + session.clientHostname);
console.log('session.hostNameAppearsAs : ' + session.hostNameAppearsAs);
return callback(); //Accept the connection
},
onMailFrom: function(address, session, callback) {
console.log('onMailFrom : ' + address.address);
return callback(); //Accept the address
},
onRcptTo: function(address, session, callback) {
console.log('onRcptTo : ' + address.address);
return callback();//Accept the address
},
onData: function(stream, session, callback) {
stream.pipe(process.stdout); //print message to console
stream.on('end', function() {
callback(null, 'message end');
});
}
};
var server = new SMTPServer(options);
server.on('error', function(err) {
console.log('server error : ' + err);
});
server.listen(SERVER_PORT, SERVER_HOST);
我该怎么办?
答案 0 :(得分:1)
如果您将authOptional: true
添加到选项中,它将禁用强制身份验证,您的代码将正常运行。