没有使用SendGrid接收电子邮件

时间:2015-04-26 23:45:24

标签: c# azure sendgrid

我正在尝试使用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);

代码运行正常,但我从未收到过电子邮件!我该如何诊断这个问题?

请注意,电子邮件不会出现在退回/阻止/垃圾邮件报告或无效的电子邮件列表中。

1 个答案:

答案 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);
        }