c# - 使用 Sendgrid 在 Azure 上发送简单的电子邮件
问题描述
我正在尝试使用SendGrid
on发送电子邮件Azure
。我遵循了这些说明:https ://docs.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("from@hotmail.com", "DX Team"),
Subject = "Hello World from the SendGrid CSharp SDK!",
PlainTextContent = "Hello, Email!",
HtmlContent = "<strong>Hello, Email!</strong>"
};
msg.AddTo(new EmailAddress("to@gmail.com", "Test User"));
var response = await client.SendEmailAsync(msg);
}
}
}
解决方案
根据您的代码示例,当您没有收到任何电子邮件时,它会运行良好。
所以要注意以下几点:
1.创建 api 密钥时,请确保选择Full Access。
2.您使用Gmail接收电子邮件,所以设置“允许不太安全的应用程序:ON ”。
3.查看回复,如果StatusCode
是Accepted则表示发送成功。
然后测试agian,它可能工作得很好。
此外,您想创建一个每 15 分钟发送一次电子邮件的功能。
您可以参考下面的代码,我在 v1.1 中创建了 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("testto@gmail.com");
message.AddContent("text/html", "Test body");
message.SetFrom(new EmailAddress("testfrom@gmail.com"));
message.SetSubject("Subject");
}
推荐阅读
- python-3.x - 限制访问电报机器人的问题
- android - isEmpty() 函数在 android Kotlin 中无法正常工作
- ssl - 为什么我的证书链不包含 CA 根证书?
- apache-flink - upsert kafka 是否应该与压缩主题一起使用
- mysql - mysql查询到json转换器
- numpy - Numpy计算二维数组中行和列的子范围的平均值
- angular - 如何在Angular中的路由组件之间传递数据
- python - CSS选择器的格式差异以及如何在chrome中复制它们?
- css - 带有背景图像的线性渐变在 ios 移动设备上显示不同
- python - 使用 sqlalchemy 自动加载加载表时出现问题