【问题标题】:SendGrid - It's like it does not send email to the customerSendGrid - 就像它不向客户发送电子邮件一样
【发布时间】:2018-08-15 22:35:03
【问题描述】:

就像我联系了 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 core 2.0 - 问题是如何添加我的用户名和密码以及端口?

【问题讨论】:

  • 也许你应该等待最后一次通话
  • 不行,我试试。

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


【解决方案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);

【讨论】:

    猜你喜欢
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    相关资源
    最近更新 更多