Skip to content

email — 邮件工具 ​

email 模块提供了邮件发送和辅助功能。

引入方式 ​

javascript
var email = require("email")

Builder 构建模式 ​

javascript
var client = email.New()
    .Provider("smtp")
    .Config({
        Host: "smtp.example.com",
        Port: 465,
        Username: "noreply@example.com",
        Password: "your-password",
        From: "noreply@example.com"
    })
    .Build()

支持的提供商 ​

smtp、sendgrid、mailgun、aws_ses、aliyun_dm、tencent_ses、postmark、resend

发送邮件 ​

Send — 发送邮件 ​

javascript
client.Send({
    To: ["user@example.com"],
    Subject: "欢迎注册",
    Body: "欢迎您注册SSS-RUN!"
})

SendBatch — 批量发送 ​

javascript
client.SendBatch({
    To: ["user1@example.com", "user2@example.com"],
    Subject: "系统通知",
    Body: "系统将于今晚维护"
})

辅助方法 ​

javascript
var emailUtil = email.New()

// 验证邮箱
emailUtil.ValidateEmail("test@example.com")    // true

// 邮箱脱敏
emailUtil.MaskEmail("test@example.com")         // "t***@example.com"

// 提取域名
emailUtil.ExtractDomain("test@example.com")     // "example.com"

// 生成验证码
var code = emailUtil.GenerateCode(6)             // "123456"

完整示例 ​

javascript
var email = require("email")

// 创建 SMTP 客户端
var client = email.New()
    .Provider("smtp")
    .Config({
        Host: env.Get("SMTP_HOST"),
        Port: 465,
        Username: env.Get("SMTP_USER"),
        Password: env.Get("SMTP_PASS"),
        From: env.Get("SMTP_FROM")
    })
    .Build()

// 发送验证码邮件
var code = Math.floor(Math.random() * 900000 + 100000).toString()
client.Send({
    To: [request.Input("email")],
    Subject: "验证码",
    Body: "您的验证码是: " + code + ",5 分钟内有效"
})

// 缓存验证码
redis.Set("verify:" + request.Input("email"), code, 300)
response.Success({ message: "验证码已发送" })

版权所有.