jiceberg420

刚开始学习MEAN, 搞个插件发个邮件。

NodeMailer貌似出镜率很高,用用。

https://nodemailer.com/smtp/ 


先申请了个个人的Outlook的邮箱,测试了一把,顺利通过。耶,好激动。

    const nodeMailer = require(\'nodemailer\');

let transporterExt = nodeMailer.createTransport({ host: \'smtp-mail.outlook.com\', port: 587, secureConnection: false, auth: { user: \'messagesender@outlook.com\', pass: \'jiubugaosuni\', }, tls: { ciphers: \'SSLv3\' } });
  
  let mailOptions = {
        from: \'"DisplayName"<real_address@xxx.com>\',
        to: \'\' + emailList,
        subject: \'\' + subject,
        text: \'\' + text,
        html: \'<p><h1>\' + text + \'</h1></p>\'
    };

  transporterExt.
transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
            res.send({ hasError: true, msg: \'Failed to send mail.\' + error.message });
            return console.log(\'mail error\', error);
        }
        console.log(\'Message %s sent: %s\', info.messageId, info.response);
        res.send({ hasError: false, msg: \'Mail Sent.\' });
 
    });
 

然后呢,试了几天以后,发现突然授权失败了,用网页一登陆outlook,发现被封号了,需要输入手机验证码登陆。

原来outlook不喜欢我这么发邮件,可能被认为成垃圾邮件的制造者了。

而且,感觉我的目的邮箱自从接收到outlook的邮件后,也确认莫名接收到过outlook垃圾邮件。

不管了,此路不通,换一条。


后来我就想,整个公司内部的邮箱吧,看着也正式一点。

于是参考了同事C#的代码。

            MailMessage mail = new MailMessage();

            mail.Subject = "AUTO TEST of Sending Emails";
            mail.From = new MailAddress("地址随便写@域名.com", "显示名称随便写");
mail.To.Add("确实存在的目的邮箱地址"); mail.Body = "Testing Email"; mail.BodyEncoding = Encoding.UTF8; mail.IsBodyHtml = true; SmtpClient client = new SmtpClient(); client.Host = "smtp.公司内网域名.com"; client.Port = 25; client.Send(mail);

我去,居然连用户名密码都不用给,发送邮件的邮箱地址和名称可以随便写,不管存在与否,太爽啦。

经过反复尝试之后,下面的代码可以工作,太好啦。

    let transporter = nodeMailer.createTransport({

        host: \'smtp.公司内网域名.com\',
        port: 25,
        tls: {
            //This config would open a connection to TLS server with self-signed or invalid TLS certificate
            rejectUnauthorized: false
        }
    });

毕竟是内网嘛,先不考虑安全性,完事儿,收工。

 

参考文献:

https://stackoverflow.com/questions/47595691/send-email-without-password-using-nodemailer-over-a-zimbra-smtp#

 

分类:

技术点:

相关文章: