Javascript SMTP服务器-不使用身份验证/密码发送电子邮件?

Javascript SMTP服务器-不使用身份验证/密码发送电子邮件?,javascript,node.js,smtp,Javascript,Node.js,Smtp,我最近收到一个向我的代码添加功能的请求 我的代码的最终结果是在同一文件夹中有一堆.csv文件。 更新要求我通过电子邮件发送这些文件。 可用和强制的方案是通过SMTP完成 现在我已经读过了,还检查了#nodeMailer npm包,但它们都需要登录名和密码,但我的经理说我不需要,可以不用它发送电子邮件 我有SMTP的IP地址和发送信件的电子邮件地址 问题: 如何在不登录邮件帐户的情况下发送电子邮件 如果不选择nodemailer,如何将文件作为内容附加到电子邮件 是否有任何npm软件包或你能给我

我最近收到一个向我的代码添加功能的请求

我的代码的最终结果是在同一文件夹中有一堆
.csv
文件。 更新要求我通过电子邮件发送这些文件。 可用和强制的方案是通过SMTP完成

现在我已经读过了,还检查了#nodeMailer npm包,但它们都需要登录名和密码,但我的经理说我不需要,可以不用它发送电子邮件

我有SMTP的IP地址和发送信件的电子邮件地址

问题:

  • 如何在不登录邮件帐户的情况下发送电子邮件
  • 如果不选择nodemailer,如何将文件作为内容附加到电子邮件
  • 是否有任何npm软件包或你能给我的解决方案或链接,我可以阅读,以使这神奇的发生

好的,在检查了一些事情和建议后,我得到了以下信息。如果将来有人面临同样的问题,我会把它作为一个答案

  • 未经您公司的smtp授权,您无法发送未经身份验证的邮件
  • 如果您被授权发送电子邮件,但不知何故出现了错误,那么如果您尝试向自己发送电子邮件,第一个可能的错误是与虚拟机没有连接或APIaddress冲突。我已经通过我公司的VPN解决了这个问题
  • 修复后,下一个可能出现的错误是发送邮件错误:自签名证书。为了解决这个问题,我找到了一个答案
因此,完成此检查表后,sendng邮件的最终代码应如下所示:

var transporter = nodemailer.createTransport(smtpTransport({
        host: "", // hostname
        secure: false, // use SSL
        port: , // port for secure SMTP
        tls: {
           rejectUnauthorized: false
        }
    }));

 var mailOptions = {
        from: '', // sender address
        to: '', // list of receivers
        cc: '', // Comma separated list or an array
        subject: 'test upgrde nodemailer subject', // Subject line
        html: '<b>Hello world </b>' // html body
    };

transporter.sendMail(mailOptions, function(error, info){
        if(error){
            console.log("/sendmail error");
            console.log(error);
            res.sendStatus(500);
            return;
        }else{
            console.log("Message sent: " + info.response);
            // if you don't want to use this transport object anymore, uncomment following line
            socketTimeout: 30 * 1000 // 0.5 min: Time of inactivity until the connection is closed
            transporter.close(); // shut down the connection pool, no more messages
            res.sendStatus(200);
        }

        // if you don't want to use this transport object anymore, uncomment following line
        transporter.close(); // shut down the connection pool, no more messages
    });
var transporter=nodeEmailer.createTransport(smtpTransport({
主机:,//主机名
安全:false,//使用SSL
端口:,//用于安全SMTP的端口
tls:{
拒绝:错误
}
}));
var mailpoptions={
发件人:'',//发件人地址
收件人:“,//收件人列表”
cc:“”,//逗号分隔的列表或数组
主题:“test upgrde nodemailer主题”,//主题行
html:'Hello world'//html正文
};
transporter.sendMail(邮件选项,函数(错误,信息){
如果(错误){
console.log(“/sendmail error”);
console.log(错误);
res.sendStatus(500);
返回;
}否则{
console.log(“发送的消息:+info.response”);
//如果不想再使用此传输对象,请取消对以下行的注释
socketTimeout:30*1000//0.5分钟:连接关闭前的非活动时间
transporter.close();//关闭连接池,不再发送消息
res.sendStatus(200);
}
//如果不想再使用此传输对象,请取消对以下行的注释
transporter.close();//关闭连接池,不再发送消息
});

这是否回答了您的问题?