标签: nodemailer

使用Meteor.js发送电子邮件附件(电子邮件包和/或nodemailer或其他)

发送电子邮件附件似乎尚未在Meteor的官方电子邮件包中实现.我已经尝试了nodemailer建议(见此处),但收到错误"无法读取未定义的属性'createTransport'".

我正在尝试在数据URI中创建CSV文件,然后发送该附件.以下是使用官方电子邮件包时的代码片段:

csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);

var options = {
          from: "xxx@gmail.com",
          to: "xxx@gmail.com",
          subject: "xxx",
          html: html,
          attachment: {
            fileName: fileName, 
            path: csvData
            }
      };

Meteor.call('sendEmail', options);
Run Code Online (Sandbox Code Playgroud)

编辑:

这基本上是我的nodemailer代码的样子:

var nodemailer = Nodemailer;
var transporter = nodemailer.createTransport();
transporter.sendMail({
    from: 'sender@address',
    to: 'receiver@address',
    subject: 'hello',
    text: 'hello world!',
    attachments: [
        {   
            path: csvData
        }
    ]
});
Run Code Online (Sandbox Code Playgroud)

javascript email email-attachments meteor nodemailer

9
推荐指数
1
解决办法
2757
查看次数

使用Gmail服务的Nodemailer无法在heroku上运行

我已经完成了使用Nodemailer和AngularJS以及NodeJS发送电子邮件的基本电子邮件设置,我已经在heroku上部署了项目.

当我在heroku上运行应用程序时,电子邮件似乎工作得很好,但是当我将它部署到Heroku时,没有发送电子邮件.

为了验证我使用的是gmail地址,我还有bcc另一个gmail地址.因此from,bcc地址是两个不同的Gmail地址.该from地址与用于身份验证的地址相同.

有人可以帮我解决这个问题吗?

编辑:添加代码

var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
    service: 'Gmail',
    auth: {
        user: 'foobar@gmail.com',
        pass: 'foobar'
    }
});

router.post('/send',function(req,res){

    var mailOptions = {
        from: 'Foo Bar ? <foobar@gmail.com>',
        to: req.body.email,
        subject: "Hello " + req.body.email,
        text: 'Hello ' + req.body.email + '?',
        html: "<p>Hello " + req.body.email + " </p>",
        bcc: "fred@gmail.com"
    };
    transporter.sendMail(mailOptions, function(error, info){
        if(error){
            console.log(error);
        }else{
            console.log('Message sent: ' + info.response);
            res.send(200);
        }
    }); …
Run Code Online (Sandbox Code Playgroud)

email heroku node.js angularjs nodemailer

8
推荐指数
3
解决办法
7650
查看次数

验证电子邮件是否成功发送 nodemailer (sails.js)

我正在使用nodemailer模块在我的 Sails.js 项目中发送电子邮件。现在我想知道是否有一种方法可以知道电子邮件是否已成功发送,或者电子邮件是否因某些附件而失败或可能是错误的电子邮件地址。

我如何确保电子邮件地址有效?或者电子邮件是否成功发送到相关电子邮件地址?

我已经阅读了 nodemailer 文档并对其进行了一些研发,但到目前为止我找不到任何有成效的东西。

请让我知道是否有办法确认电子邮件。

谢谢。

javascript email-client nodemailer sails.js

8
推荐指数
1
解决办法
5668
查看次数

用玩笑模拟 nodemailer.createTransport.sendMail

我有一些使用nodemailer模块的代码。

在路由器(router.js)中,我有

const transporter = nodeMailer.createTransport(emailArgs);
Run Code Online (Sandbox Code Playgroud)

然后在路线(/login)内我有:

...
return transporter.sendMail(mailOptions);
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用jest测试框架测试这条路线。我在模拟对sendMail. 我读了这篇关于如何使用 jest mocking 的好博文,但我收到了这个错误:

类型错误:无法读取未定义的属性“sendMail”

事实上,当我检查transporter它的值是未定义的。

这是我的测试代码(不起作用):

import request from "supertest";
import router from "./router";

jest.mock("nodemailer");

describe("", () => {
...

    test("", async () => {
        // 1 - 200 status code; 2 - check email was sent
        expect.assertions(2);

        const response = await request(router)
            .post("/login")
            // global variable
            .send({ "email": email })
            .set("Accept", "application/json")
            .expect("Content-Type", …
Run Code Online (Sandbox Code Playgroud)

unit-testing mocking node.js nodemailer jestjs

8
推荐指数
2
解决办法
4806
查看次数

如何使用 nodemailer 更改邮件的发件人名称?

我使用带有 gmail 帐户的 Nodemailer,我想更改发件人姓名。但我不知道该怎么做。发件人姓名实际上是我的电子邮件地址,但我更喜欢“咨询”。 在此处输入图片说明 这是我的代码:

var smtpTransport = mailer.createTransport("SMTP", {
    service: "Gmail",
    auth: {
        user: "m***@gmail.com",
        pass: "****"
    }},
    {from: 'Consultation'}
);

module.exports = {
    sendNewUserEmail: function (user) {
        var mail = {
            from: "Consultation",
            to: "i***@gmail.com",
            subject: `Consultation: New client ${user.firstname} ${user.lastname}`,
            html: `<h1>New client for kitomba</h1>
            <ul>
                <li>Firstname: ${user.firstname}</li>
                <li>Lastname: ${user.lastname}</li>
                <li>Phone: ${user.phone}</li>
                <li>Mail: ${user.mail}</li>
                <li>Address: ${user.address}</li>
                <li>Suburb: ${user.suburb}</li>
                <li>State: ${user.state}</li>
                <li>Postal code: ${user.postalcode}</li>
            </ul>`
        }

        smtpTransport.sendMail(mail, function (error, response) {
            if (error) {
                console.log("Error");
                console.log(error);
            } else …
Run Code Online (Sandbox Code Playgroud)

nodemailer reactjs

8
推荐指数
3
解决办法
4155
查看次数

无法找到安全性较低的应用程序设置

我们在 Nodemailer 中使用我们的 Gmail 凭据发送开发中的测试电子邮件。我们今天尝试使用与昨​​天相同的配置发送一个并收到以下错误:

2020-05-04T10:17:35.547Z Error: Invalid login: 535-5.7.8 Username and Password not accepted. Learn more at
04/05/2020 12:17:35 535 5.7.8 https://support.google.com/mail/?p=BadCredentials s18sm19281474wra.94 - gsmtp
04/05/2020 12:17:35 at SMTPConnection._formatError (/home/node/backend/node_modules/nodemailer/lib/smtp-connection/index.js:784:19)
04/05/2020 12:17:35 at SMTPConnection._actionAUTHComplete (/home/node/backend/node_modules/nodemailer/lib/smtp-connection/index.js:1523:34)
04/05/2020 12:17:35 at SMTPConnection.<anonymous> (/home/node/backend/node_modules/nodemailer/lib/smtp-connection/index.js:550:26)
04/05/2020 12:17:35 at SMTPConnection._processResponse (/home/node/backend/node_modules/nodemailer/lib/smtp-connection/index.js:942:20)
04/05/2020 12:17:35 at SMTPConnection._onData (/home/node/backend/node_modules/nodemailer/lib/smtp-connection/index.js:749:14)
04/05/2020 12:17:35 at TLSSocket.SMTPConnection._onSocketData (/home/node/backend/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
04/05/2020 12:17:35 at TLSSocket.emit (events.js:310:20)
04/05/2020 12:17:35 at addChunk (_stream_readable.js:286:12)
04/05/2020 12:17:35 at readableAddChunk (_stream_readable.js:268:9)
04/05/2020 12:17:35 at TLSSocket.Readable.push (_stream_readable.js:209:10)
04/05/2020 12:17:35 2020-05-04T10:17:34.439Z RES …
Run Code Online (Sandbox Code Playgroud)

email gmail smtp node.js nodemailer

8
推荐指数
1
解决办法
668
查看次数

Next.JS 和 Nodemailer,从联系表单发送电子邮件

我在 next.js 中的联系表单有问题,我没有任何错误(显示),一切正常,直到部署(在 Vercel 上)。我获取了我的表单,状态为 200,但我没有在 Gmail 上收到我的电子邮件。此外,我没有收到任何其他信息。当我在“开发”和“构建”上测试我的应用程序时,我收到了电子邮件。我在 Gmail 帐户中也有“不太安全的应用”选项。

这是我在 Next.JS 中的代码:

contact.js 中的 fetch 方法:

 fetch("/api/contact", {
        method: "POST",
        headers: {
          Accept: "application/json, text/plain, */*",
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          name: mailName,
          email: mailAddress,
          text: mailText,
        }),
      }).then((res) => {
        console.log("Fetch: ", res);
        res.status === 200
        ?
        router.push("/success")
          : router.push("/error");
Run Code Online (Sandbox Code Playgroud)

在 api/contact.js 中

require("dotenv").config();
const nodemailer = require("nodemailer");

export default (req, res) => {

  const { name, email, text } = req.body;

  const transporter = nodemailer.createTransport({
    service: "gmail", …
Run Code Online (Sandbox Code Playgroud)

javascript gmail node.js nodemailer next.js

8
推荐指数
1
解决办法
6109
查看次数

535 5.7.139 认证失败,请求不满足认证成功的条件

我正在尝试通过nodemailer 发送电子邮件。发件人电子邮件是 microsoft azure。但我收到错误响应:'535 5.7.139 身份验证失败,请求不符合成功身份验证的标准。请联系您的管理员。MFA 已启用。我还生成了应用程序密码。谁能帮我解决这个问题。发送邮件的代码片段-


var userTransporter = nodemailer.createTransport({
  host: 'smtp.office365.com',
  port: 587,     // secure SMTP
  secure: false,
  auth: {
    user:SENDER_EMAIL,
    pass: SENDER_APP_PASSWORD,
  }
});

    var mailOptions = {
        from: SENDER_EMAIL,
        to: email,
        template: path.join(__dirname, "../public/views/email-verification"),
        context: {
          token: otp,
          email: email,
          url: EMAIL_VERIFICATION_LINK,
          name: user_name
        },
      };
      let mail = await transporter.sendMail(mailOptions);
Run Code Online (Sandbox Code Playgroud)

azure node.js nodemailer

8
推荐指数
1
解决办法
2万
查看次数

Nodemailer:响应:'535-5.7.8 用户名和密码不被接受

随着 Google 于 2022 年 5 月 30 日关闭安全性较低的应用程序,将 Gmail 与 nodemailer 结合使用现在会引发错误,提示response: '535-5.7.8 Username and Password not accepted. Learn more at\n' + '535 5.7.8 https://support.google.com/mail/?p=BadCredentials。Nodemailer文档似乎尚未就安全性较低的应用程序问题进行更新,但建议使用其他交付提供商。我以前只是打开 LSA,将凭据存储在环境变量中,然后让 Nodemailer 完成它的工作,经过此更改,如何仍然可以将 gmail 与 Nodemailer 一起使用?目前还没有 YouTube 教程来解决这个问题,并且查看google 文档,它没有显示 nodemailer

email gmail credentials nodemailer

8
推荐指数
1
解决办法
2万
查看次数

Nodemailer - DeprecationWarning:“punycode”模块已弃用

我需要创建一个脚本,使用 Gmail 帐户每天发送一次邮件。我使用过 nodemailer 并且有这个简单的测试代码

const fs = require('fs');
const path = require('path');
const nodemailer = require('nodemailer');

const transport = nodemailer.createTransport({
    host: 'smtp.gmail.com',
    //secure: true,
    //port: 465,
    auth: {
        user: 'myuser@companyworkspace.com',
        pass: 'mypassword'
    }
})

let mailOptions = {
    from: 'bruno.paolillo@ohspa.it', // sender address
    to: 'bruno.paolillo@ohspa.it', // list of receivers
    subject: 'Test email', // Subject line
    text: 'this is some text', //, // plaintext body
    html: '<b>Hello world </b>' // You can choose to send an HTML body instead
} …
Run Code Online (Sandbox Code Playgroud)

javascript gmail node.js nodemailer

8
推荐指数
1
解决办法
2万
查看次数