【问题标题】:Using Nodemailer with gmail将 Nodemailer 与 gmail 一起使用
【发布时间】:2019-05-17 06:49:22
【问题描述】:

我一直在阅读多个论坛并尝试了好几个小时才能让我的 Nodemailer 应用程序运行,但它根本无法运行。我已经接受了能够让他们工作的人的建议,但结果对我来说仍然是一样的。每当我尝试在我创建的表单上发送 POST 请求时,我都会在下面发布错误。

更新:!!

我已设法获取链接到电子邮件的代码,但现在我无法将输入到联系表单中的数据提交到电子邮件。我有点新,所以如果我听起来没有经验,我就是。我感谢耐心。这是当前代码:

app.post('/contact',urlencodedParser,(req,res)=>{
    const output= `
    <p>You have a new contact request</p>
    <h3>Contact Details</h3>
    <ul>
         <li> Name:${req.body.name}</li>
         <li> Email:${req.body.email}</li>
        <li> Message:${req.body.message}</li>

    </ul>

    `;

    async function main(){



    let transporter = nodemailer.createTransport({
        host: 'smtp.gmail.com',
        port: 465,
        secure: true,

        auth: {
            user:'ME@EMAIL.COM',
            pass: process.env.PASSWORD

        },

    });

    // send mail with defined transport object
    let info = await transporter.sendMail({
      from: req.body.email, // sender address
      to: "me@email.com", // list of receivers
      subject: "Hello ✔", // Subject line
       html: `${req.body.message}` // html body
    });

    console.log("Message sent: %s", info.messageId);

    console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));

  }

  main().catch(console.error);


res.render('contact')

})

【问题讨论】:

  • “它根本不起作用”:请编辑您的问题以更准确地解释 什么 它不起作用。您是否收到一条错误消息,具体是哪一条(请复制/粘贴)?如果没有,什么不起作用?
  • 此外,Gmail 会拒绝包含不受信任的链接和主机名的邮件。
  • 我用收到的错误更新了我的帖子。

标签: javascript node.js nodemailer


【解决方案1】:

这只是一个忘记密码的控制器,它向用户发送密码。 emailConfig.js

var email = "xxxx@gmail.com";
const password = "xxxxxx";
const service = "gmail";

module.exports = {
  service: service,
  email: email,
  password: password
}

Controller.js

var transporter = nodemailer.createTransport({
    service : nodeMailerConfig.service,
    auth :{
        user : nodeMailerConfig.email,
        pass : nodeMailerConfig.password
    }
});
    const mailOptions = {
                          from: nodeMailerConfig.email,
                          to: req.body.email,
                          subject: "Forgot Password",
                          html: `<p>Hi ${req.body.email}</p> <br/>
                                  <pre>Your password is ${randomPassword}</pre><br/>
                                  <pre>Cheers, OpenBox Team</pre>`
                          }
                          transporter.sendMail(mailOptions,(mailerr,info)=> {
                              if(mailerr){
                                res.status(400).json("Unable to send email");
                              }else{
                                res.status(201).json(info);
                              }
                          })

请确保您在 gmail 中打开了不安全的电子邮件设置,否则大多数情况下邮件将被拒绝或进入垃圾邮件箱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2021-12-23
    • 1970-01-01
    • 2017-09-04
    • 2012-09-30
    • 2016-01-09
    相关资源
    最近更新 更多