You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SendGrid在JavaScript版Azure Function中发送邮件?

在JavaScript版Azure Function里用SendGrid发邮件(补全你的代码)

嘿,看你已经搞定了最关键的两步:把SendGrid的API密钥存在应用设置里,也配置好了SendGrid输出绑定,现在就差把代码补全跑起来对吧?我来帮你完善这段代码,确保邮件能正常发出去:

完整可运行的Function代码

module.exports = function (context, myQueueItem) {
    // 先把要发的邮件内容组装好
    var message = {
        personalizations: [
            {
                to: [
                    { email: "testto@test.com" }
                ]
            }
        ],
        from: { email: "testfrom@test.com" },
        subject: "Azure news",
        content: [
            { 
                type: 'text/plain', 
                value: myQueueItem || "默认邮件内容(队列消息为空时显示)" 
            }
        ]
    };

    // 重点!把邮件对象赋值给你的SendGrid输出绑定
    // 这里的`outputEmail`要和你function.json里配置的绑定name完全一致
    context.bindings.outputEmail = message;

    // 结束Function执行,第一个参数传null代表没错误,第二个是返回的提示信息
    context.done(null, "邮件发送请求已提交");
};

几个必须注意的点

  • 绑定名称要对应:你得确保代码里的context.bindings.outputEmail和function.json里SendGrid输出绑定的name字段一模一样。举个例子,你的function.json里的配置大概是这样的:
    {
        "type": "sendGrid",
        "name": "outputEmail",
        "direction": "out",
        "apiKey": "%SendGridApiKey%",
        "from": "testfrom@test.com"
    }
    
  • 防空处理:我加了个小判断,要是队列里的消息是空的,邮件会显示默认内容,避免出现空邮件的情况
  • 发件人要验证:记得在SendGrid控制台里把你用的testfrom@test.com做个验证(要么验证整个域名,要么单独验证这个邮箱),不然邮件很可能被当成垃圾邮件或者直接被拒收
  • 错误排查:要是之后发邮件出问题,去Azure门户的Function日志里看看,要是有错误,context.done的第一个参数可以传错误对象,比如context.done(new Error("发送失败")),这样日志里会显示具体问题

测试小技巧

你可以直接在Azure门户的Function测试面板里手动输入一段测试内容,然后点执行,之后去目标邮箱看看有没有收到。要是没收到,先查Function的执行日志,看看是不是哪里配置错了。

内容的提问来源于stack exchange,提问作者user2700254

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:54:38