SendGrid - 它不会向客户发送电子邮件

时间:2018-03-07 17:58:25

标签: .net-core asp.net-core-2.0 sendgrid

就像我联系Sendrid,了解我如何不发送电子邮件。

那是因为我需要一个用户名和密码才能做到这一点。

Sendgrid在Twitter(PM)上说

  

要通过SMTP发送邮件,您需要将主机设置为http://smtp.sendgrid.net。然后,您可以使用端口587,2525或25进行TLS连接,并可以使用您的SendGrid用户名/密码进行身份验证,或使用您帐户上生成的API密钥。

代码:

var resultMail = await _viewRenderService.RenderToStringAsync("~/Views/Templates/NewPassword.cshtml", viewModel);

var api = Environment.GetEnvironmentVariable("azure_xxxxxxx@azure.com");
var client = new SendGridClient(api);
var from = new EmailAddress("hello@hello.com", "J. Petersen");
var to = new EmailAddress("test@test.com", "Test");
var plainTextContent = Regex.Replace(resultMail, "<[^>]*>", "");
var msg = MailHelper.CreateSingleEmail(from, to, title, plainTextContent: plainTextContent,
                        htmlContent: null);

var resulta = client.SendEmailAsync(msg);

我查看了Documentation on Sendgrid,我认为我不会发现您需要使用用户名和密码以及端口。

它内置于.net核心2.0 - 问题是如何添加我的用户名和密码以及端口?

1 个答案:

答案 0 :(得分:1)

您使用的是API而不是SMTP,这是标准的smtp

var mailMessage = new MailMessage
{
    From = new MailAddress("support@bla.net"),
    Subject = "Hello World",
    Body = "Test email from Send Grid SMTP Settings"
};

mailMessage.To.Add("someone@somehwere.net");

var smtpClient = new SmtpClient
{
    Credentials = new NetworkCredential("Your-Username@azure.com", "Your-Password"),
    Host = "smtp.sendgrid.net",
    Port = 587
};

smtpClient.Send(mailMessage);