【问题标题】:Can't send E-mail with SendGrid WebApi lib无法使用 SendGrid Web Api lib 发送电子邮件
【发布时间】:2020-04-03 18:06:10
【问题描述】:

每次我尝试发送电子邮件时,我都会收到与跨域相关的 BadRequest。我试图搜索这个问题,这似乎是因为我从浏览器(本地主机)调用它不会工作。 基本上我正在对我的 Aspnet mvc 进行 Ajax 调用,他们调用 WebApi 项目

public async Task<Response> SendEmail(string email, string link, string companyName)
    {
        var apiKey = Environment.GetEnvironmentVariable("SMTP");
        var client = new SendGridClient(apiKey);

        var from = new EmailAddress("d.com", "d");
        var subject = "Sending with SendGrid is Fun";
        var to = new EmailAddress(email, "Caro");
        var plainTextContent = "and easy to do anywhere, even with C#";
        var htmlContent = "<strong>Aqui está seu contrato </strong>";
        var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
        return await client.SendEmailAsync(msg);

    }

这就是回应:

{服务器:nginx 日期:格林威治标准时间 2019 年 12 月 10 日星期二 14:17:40 连接:保持活动 访问控制允许来源:https://sendgrid.api-docs.io 访问控制允许方法:POST Access-Control-Allow-Headers:授权、Content-Type、代表、x-sg-elas-acl 访问控制最大年龄:600 X-No-CORS-原因:https://sendgrid.com/docs/Classroom/Basics/API/cors.html }

不知道该怎么办了。我应该在 HttpClient 类的标题中添加一些内容吗?

【问题讨论】:

  • client.SendEmailAsync(msg) 是一个响应。它有什么反应?
  • @IavorOrlyov 我更新了问题!
  • 我不能确定,但​​我建议您缺少发件人。你从哪里得到你的 apiKey?您需要在他们的站点中创建一个发件人,并在您的代码中使用此 apiKey
  • 我知道。钥匙在 Sendgrid 那里
  • 您确认发件人的邮箱了吗

标签: c# sendgrid


【解决方案1】:
 private async Task<string> SendMail(string to, string text)
        {
            try
            {
                var msg = new SendGridMessage();
                msg.SetFrom(new EmailAddress("youremail@email.com", "Your Name"));
                msg.AddTo(to);
                msg.SetSubject("Your subject here");
                msg.AddContent(MimeType.Text, text);
                var client = new SendGridClient("???"); // Your sendgrid client private id here
                var response = await client.SendEmailAsync(msg);
                if (response.StatusCode == System.Net.HttpStatusCode.Accepted)
                    return "ok";
                else return "failed"; // not happening ))
            }
            catch (Exception e)
            {
                return e.Message;
            }
        }

【讨论】:

    猜你喜欢
    • 2019-06-14
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多