我正在尝试使用SendGrid库发送电子邮件:https://github.com/sendgrid/sendgrid-csharp
更具体地说,我这样做......
// Create the email object first, then add the properties.
SendGridMessage myMessage = new SendGridMessage();
myMessage.AddTo("anna@example.com");
myMessage.From = new MailAddress("john@example.com", "John Smith");
myMessage.Subject = "Testing the SendGrid Library";
myMessage.Text = "Hello World!";
// Create credentials, specifying your user name and password.
var credentials = new NetworkCredential("username", "password");
// Create an Web transport for sending email.
var transportWeb = new Web(credentials);
// Send the email.
transportWeb.DeliverAsync(myMessage);
代码运行正常,但我从未收到过电子邮件!我该如何诊断这个问题?
请注意,电子邮件不会出现在退回/阻止/垃圾邮件报告或无效的电子邮件列表中。
答案 0 :(得分:-1)
我知道这是一篇旧帖子,但这是我的答案:
SendGrid 不用于将电子邮件接收到您的电子邮件地址,仅用于批量发送。如果您想使用,我建议使用 MailKit 中的 SmtpClient。请务必使用正确的主机名(如 smtp.gmail.com)、端口号(如 SSL 的 465)以及正确的凭据(任何电子邮件地址的用户名和密码)。
需要注意的一点是,如果您使用自己的凭据作为自己的电子邮件地址,并且希望将其发送到同一个电子邮件地址,例如,如果您想使用自己的凭据向 JoeBlank@email 发送电子邮件,您将只发给自己。如果您想回复其他电子邮件地址,请填写 ReplyTo 字段。这个想法是让授权电子邮件地址的电子邮件向您发送消息。代码如下:
using MimeKit;
using MailKit.Net.Smtp;
MimeMessage message = new MimeMessage();
message.From.Add(new MailboxAddress("Sender Name", "sender@example.com"));
message.To.Add(new MailboxAddress("Receiver Name", "receiver@example.com"));
message.ReplyTo.Add(new MailboxAddress("ReplyTo Name", "replyto@example.com"));
message.Subject = "Subject";
message.Body = new TextPart("plain")
{
Text = plainTextContent
};
using (SmtpClient smClient = new SmtpClient())
{
smClient.Connect("smtp.gmail.com", 465, true);
smClient.Authenticate("user", "pass");
await smClient.SendAsync(message);
smClient.Disconnect(true);
}