Nodejs nodemailer发送邮件的问题

Nodejs nodemailer发送邮件的问题

是不是漏了端口设置

6 回复

Nodejs nodemailer发送邮件的问题

如果你在使用 nodemailer 发送邮件时遇到了问题,并且怀疑是由于缺少端口设置导致的,那么你可以参考以下步骤来解决这个问题。首先,我们需要确保你的 nodemailer 配置正确,包括SMTP服务器地址、端口号、认证信息等。

示例代码

假设你正在使用Gmail作为你的SMTP服务器,以下是一个完整的示例代码:

const nodemailer = require('nodemailer');

// 创建一个SMTP传输对象
let transporter = nodemailer.createTransport({
    host: 'smtp.gmail.com',
    port: 465, // 注意这里是端口号
    secure: true, // 使用SSL
    auth: {
        user: 'your-email@gmail.com', // 你的邮箱
        pass: 'your-password' // 你的密码
    }
});

// 邮件内容
let mailOptions = {
    from: '"Your Name" <your-email@gmail.com>', // 发件人
    to: 'recipient-email@example.com', // 收件人列表
    subject: 'Hello ✔', // 主题
    text: 'Hello world?', // 纯文本正文
    html: '<b>Hello world?</b>' // HTML正文
};

// 发送邮件
transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        return console.log(error);
    }
    console.log('Message sent: %s', info.messageId);
});

解释

  1. 创建传输对象:通过 nodemailer.createTransport 方法创建一个传输对象,其中包含了SMTP服务器的相关配置。
  2. 端口设置:注意这里的 port 设置为 465,这是Gmail的默认SSL端口。如果你使用的是其他邮件服务提供商,可能需要根据其文档来调整端口号。
  3. 安全设置secure: true 表示使用SSL加密,这对于大多数邮件服务来说是必需的。
  4. 认证信息:你需要提供你的邮箱地址和密码来完成身份验证。
  5. 邮件内容:定义邮件的主题、发件人、收件人以及正文内容(可以是纯文本或HTML)。
  6. 发送邮件:最后调用 sendMail 方法发送邮件,并处理发送结果。

通过以上步骤,你应该能够成功地使用 nodemailer 发送邮件。如果仍然遇到问题,请检查邮件服务提供商的文档以获取更多帮助。


请区分SSL端口和非SSL端口;

var smtpTransport = nodemailer.createTransport(“SMTP”,{ host: “smtp.163.com”, secureConnection: true, // use SSL port: 465, // port for secure SMTP auth: { user: " ", pass: " " } });

试试emailjs,我现在在用这个,唯一一点就是多邮件的那个位置有点问题

好像说是 1.+的 不需要 “SMTP” 这个参数。

在使用 nodemailer 发送邮件时,通常不需要显式设置SMTP服务器的端口,因为 nodemailer 会根据使用的SMTP服务自动选择合适的端口。但是如果你遇到了问题,可以尝试手动指定端口。

以下是一个基本的示例代码,展示如何使用 nodemailer 发送邮件:

const nodemailer = require('nodemailer');

// 创建一个SMTP传输对象
let transporter = nodemailer.createTransport({
    host: 'smtp.example.com', // SMTP服务器地址
    port: 587, // SMTP服务器端口
    secure: false, // 使用TLS
    auth: {
        user: 'your-email@example.com', // 发件人邮箱
        pass: 'your-password' // 邮箱密码或应用专用密码
    }
});

// 发送邮件
let mailOptions = {
    from: '"Sender Name" <sender@example.com>', // 发件人
    to: 'recipient@example.com', // 收件人
    subject: 'Hello ✔', // 邮件主题
    text: 'Hello world?', // 纯文本正文
    html: '<b>Hello world?</b>' // HTML正文
};

transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        return console.log(error);
    }
    console.log('Message sent: %s', info.messageId);
});

解释:

  1. host: 设置SMTP服务器地址。
  2. port: 设置SMTP服务器端口,默认是25(无安全连接)或465(SSL安全连接),这里设置为587用于TLS安全连接。
  3. secure: 设置是否使用TLS,如果是,则设为false
  4. auth: 设置发件人的邮箱和密码。
  5. mailOptions: 包含邮件的详细信息,如发件人、收件人、主题等。
  6. sendMail: 发送邮件,并提供回调函数处理成功或失败的情况。

如果遇到端口问题,可以尝试更换不同的端口,例如默认的25或465。

如果你已经设置了端口并且仍然遇到问题,请检查其他配置项,如SMTP服务器地址、用户名和密码是否正确。

回到顶部