求推荐无域名要求的免费SMTP服务(Node+nodemailer密码重置场景)
无需域名的免费SMTP服务推荐(适配Node.js + Nodemailer)
针对你的个人PET项目密码重置需求,以下是几款无需绑定自有域名的免费SMTP服务,均能与Nodemailer兼容:
SendGrid 免费版:
- 配额:每天100封邮件,足够个人项目使用
- 无需自有域名,可使用平台默认发件地址(如
no-reply@sendgrid.net) - Nodemailer配置时,SMTP用户名固定为
apikey,密码为你在SendGrid后台生成的API密钥,端口587
Mailgun 沙箱模式:
- 配额:每月5000封邮件
- 使用平台提供的沙箱域名(如
sandboxxxx.mailgun.org)发件,无需自有域名,但需将收件人邮箱提前添加到后台授权列表(适合测试或小范围用户场景) - SMTP参数直接使用Mailgun后台提供的配置即可
Postmark 免费版:
- 配额:初始10000封额度,之后每月1000封
- 支持使用平台默认域名发件,无需绑定自有域名
- SMTP配置简单,参数可直接从Postmark后台获取
Brevo(原Sendinblue)免费版:
- 配额:每天300封邮件
- 无需自有域名,可使用平台提供的发件地址
- 与Nodemailer兼容性良好,SMTP配置流程直观
示例:SendGrid + Nodemailer 配置代码
const nodemailer = require('nodemailer'); async function sendPasswordResetEmail(userEmail, resetToken) { // 初始化SMTP transporter const transporter = nodemailer.createTransport({ host: 'smtp.sendgrid.net', port: 587, secure: false, // 587端口用false,465端口用true auth: { user: 'apikey', pass: '你的SendGrid API密钥' } }); // 发送邮件 const mailOptions = { from: 'no-reply@sendgrid.net', to: userEmail, subject: '账户密码重置请求', text: `请点击以下链接重置你的密码:http://your-project-url/reset?token=${resetToken}`, html: `<p>请点击<a href="http://your-project-url/reset?token=${resetToken}">这里</a>重置你的密码</p>` }; try { const info = await transporter.sendMail(mailOptions); console.log('重置邮件已发送:', info.messageId); } catch (error) { console.error('邮件发送失败:', error); } } // 调用示例 sendPasswordResetEmail('user@example.com', 'your-reset-token');
内容的提问来源于stack exchange,提问作者dbUser11
相关产品推荐
相关产品推荐

