如何在没有 smtp 的情况下发送电子邮件节点邮件

时间:2021-03-12 17:39:15

标签: javascript node.js email npm nodemailer

我正在尝试通过 nodemailer 发送电子邮件,并且我已经通过我的 gmail 帐户多次使用它...问题是,我现在不想使用我的 gmail 帐户,我想使用我的业务电子邮件,以便我可以定期向客户发送电子邮件...

我现在已经这样设置了,但不知道如何在没有 gmail/smtp 的情况下进行:

app.post('/sendBatchEmail', (req, res) => {
var emails = [];
var emailSubject = req.body.emailSubject;
var emailMessage = req.body.emailMessage;
//perform db2 send

var sendEmail = "select * from testEmails"
ibmdb.open(ibmdbconnMaster, function (err, conn) {
  if (err) return console.log(err);
  conn.query(sendEmail, function (err, rows) {
    if (err) {
      console.log(err);
    }
    for (var i = 0; i < rows.length; i++) {
      emails.push(rows[i].EMAIL)
    }
   
    //send email
    async function main() {
      // Generate test SMTP service account from ethereal.email
      // Only needed if you don't have a real mail account for testing
      let testAccount = await nodemailer.createTestAccount();
  
      // create reusable transporter object using the default SMTP transport
      let transporter = nodemailer.createTransport({
        host: "smtp.gmail.com",
        port: 587,
        secure: false, // true for 465, false for other ports
        auth: {
          user: "x",
          pass: "x",
        },
      });
  
      // send mail with defined transport object
      let sendBatch = await transporter.sendMail({
        from: "", // sender address
        to: "xxxxx@gmail.com",
        bcc: emails, // list of receivers
        subject: emailSubject, // Subject line
        text: emailMessage, // plain text body
      });
  
      console.log("Message sent: %s", sendBatch.messageId);
     }
  
    main().catch(console.error);
    res.redirect("/index");

    conn.close(function () {
      console.log("closed the function app.get(/account)");
    });
  });
});

我不知道如何不使用 smtp 服务器,所以我可以使用 biz 电子邮件,或者即使这是可能的!在此先感谢您的帮助:)

 })

1 个答案:

答案 0 :(得分:0)

因为您可以使用 nodemailer 执行此操作,但不建议发送没有 SMTP 的电子邮件,因为被拒绝或放入垃圾邮件文件夹的可能性要高得多。我很确定 gmail 之类的服务会将电子邮件放在垃圾邮件文件夹中。以下是您可以如何实施它:

let transporter = nodemailer.createTransport({
        host: "smtp.example.com",
        port: 587,
        secure: false, // true for 465, false for other ports
        auth: {
          user: "x",
          pass: "x",
        },
      });
  
      // send mail with defined transport object
      let sendBatch = await transporter.sendMail({
        from: "<foo@example.com>", // sender address
        to: "xxxxx@gmail.com",
        bcc: emails, // list of receivers
        subject: emailSubject, // Subject line
        text: emailMessage, // plain text body
      });
  
      console.log("Message sent: %s", sendBatch.messageId);
     }

有关详细信息,您可以查看 here1here2