c# - 使用 Sendgrid 在 Azure 上发送简单的电子邮件

标签 c# azure email azure-functions sendgrid

我正在尝试使用 Azure 上的 SendGrid 发送电子邮件。 我按照以下说明操作:https://learn.microsoft.com/tr-tr/azure/sendgrid-dotnet-how-to-send-email ;但它似乎不起作用。 。不过,通过 smtp 发送是可行的。

using System;
using System.Threading.Tasks;
using SendGrid;
using SendGrid.Helpers.Mail;

namespace Example
{
    internal class Example
    {
        private static void Main()
        {
            Execute().Wait();
        }

        static async Task Execute()
        {
            var apiKey = System.Environment.GetEnvironmentVariable("SENDGRID_APIKEY");
            var client = new SendGridClient(apiKey);
            var msg = new SendGridMessage()
            {
                From = new EmailAddress("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="167064797b567e79627b777f7a3875797b" rel="noreferrer noopener nofollow">[email protected]</a>", "DX Team"),
                Subject = "Hello World from the SendGrid CSharp SDK!",
                PlainTextContent = "Hello, Email!",
                HtmlContent = "<strong>Hello, Email!</strong>"
            };
            msg.AddTo(new EmailAddress("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="baced5faddd7dbd3d694d9d5d7" rel="noreferrer noopener nofollow">[email protected]</a>", "Test User"));
            var response = await client.SendEmailAsync(msg);
        }
    }
}

最佳答案

根据您的代码示例,当您没有收到任何电子邮件时,它会运行良好。

因此请注意以下几点:

1.创建 API key 时,请确保选择完全访问enter image description here 2.您使用 Gmail 接收电子邮件,因此请设置“允许安全性较低的应用程序:开启”。 enter image description here 3.检查回复,如果StatusCodeAccepted则表示邮件发送成功。 enter image description here 然后再测试一下,也许可以正常工作。

另外,您想要创建一个每 15 分钟发送一次电子邮件的功能。

可以引用下面的代码,我在v1中创建了azure函数。

public static void Run([TimerTrigger("0 */15 * * * *")]TimerInfo myTimer, [SendGrid(ApiKey = "sendgridkey")] out SendGridMessage message, TraceWriter log)
        {
            log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
            message = new SendGridMessage();
            message.AddTo("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0c78697f7878634c6b616d6560226f6361" rel="noreferrer noopener nofollow">[email protected]</a>");
            message.AddContent("text/html", "Test body");
            message.SetFrom(new EmailAddress("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b9cddccacddfcbd6d4f9ded4d8d0d597dad6d4" rel="noreferrer noopener nofollow">[email protected]</a>"));
            message.SetSubject("Subject");

        }

关于c# - 使用 Sendgrid 在 Azure 上发送简单的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51078310/

相关文章:

azure - AKS Kube 代理不公开指标

email - 使用mailGun在Meteor应用程序中发送电子邮件-调用方法 'sendEmail'出错

C# AES 加密字节数组

c# - 如何将 C# 流式传输视频(图像)到 HTML5 客户端?

c# - 解析 XSD 架构时出错 - 未定义的复杂类型

azure - DocumentDb 上的文档未被替换

c# - 在其他地方创建的通用类

azure - 需要通过terraform在azure中创建多个虚拟机

c# - 使用 ASP.NET MVC 发送 500 封电子邮件 : throttling

security - HTML 电子邮件混淆是否足够安全以阻止机器人?