在Heroku上配置邮件枪附加组件(如SendGrid, Mailgun等)可以方便地发送电子邮件。以下是配置SendGrid作为邮件服务的步骤:
1. 创建SendGrid账户
如果你还没有SendGrid账户,首先需要注册一个:
- 访问 SendGrid官网
- 并点击“Sign Up”。
- 注册并验证你的账户。
2. 在Heroku上添加SendGrid附加组件
- 登录到你的Heroku账户并进入你的应用。
- 点击“Settings”选项卡。
- 在“Add-ons”部分,搜索“SendGrid”并点击“Install”。
- 选择一个定价计划并确认安装。
3. 配置SendGrid API密钥
- 在SendGrid账户中,导航到“Settings” > “API Keys”。
- 点击“Create API Key”并给它一个描述性的名称。
- 确保勾选“Full Access”权限,然后点击“Create”。
- 复制生成的API密钥,稍后在Heroku配置中使用。
4. 设置环境变量
- 回到Heroku应用的“Settings”页面。
- 在“Config Vars”部分,点击“Reveal Config Vars”。
- 添加以下环境变量:
SENDGRID_API_KEY
: 你刚才创建的SendGrid API密钥。SENDGRID_USERNAME
: 通常可以留空,因为SendGrid会自动使用API密钥进行身份验证。SENDGRID_PASSWORD
: 同样可以留空。
5. 在应用中使用SendGrid发送邮件
在你的应用代码中,你可以使用SendGrid的API来发送邮件。以下是一个使用Node.js和@sendgrid/mail
包的示例:
- 安装
@sendgrid/mail
包:
npm install @sendgrid/mail
- 在你的代码中配置和使用SendGrid:
const sgMail = require('@sendgrid/mail'); sgMail.setApiKey(process.env.SENDGRID_API_KEY); const msg = { to: 'recipient@example.com', from: 'sender@example.com', subject: 'Hello World', text: 'This is a test email', html: '<strong>This is a test email</strong>', }; sgMail.send(msg) .then(() => { console.log('Email sent'); }) .catch((error) => { console.error(error); });
6. 测试邮件发送
运行你的应用并触发邮件发送逻辑,确保邮件能够成功发送并且没有错误。
注意事项
- 确保你的Heroku应用的环境变量设置正确。
- 如果你在本地开发环境中测试,也需要配置相应的环境变量。
- 定期检查SendGrid账户的发送限制和使用情况,以避免超出配额。