node.js我怎么能在smtp-server中做530错误

时间:2016-02-23 01:45:00

标签: node.js smtp

我用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);

我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果您将authOptional: true添加到选项中,它将禁用强制身份验证,您的代码将正常运行。