【发布时间】:2017-05-03 14:31:18
【问题描述】:
我正在使用 Azure 移动服务后端,我可以通过 SendGrid 成功发送电子邮件。但是,每次我尝试添加附件时,它都会失败。我从来没有收到过电子邮件。经过一番研究,我发现我所需要的只是一条虚拟路径。我修改了路径名,还是不行。
我似乎无法弄清楚为什么会失败。
下面是我的代码:
var client = new SendGridClient("apiKey");
var msg = new SendGridMessage()
{
From = new EmailAddress(sender),
Subject = "Adherence Report",
PlainTextContent = "Sample Content ",
HtmlContent = "<strong>Hello, Email!</strong>"
};
msg.AddTo(new EmailAddress(receipient, null));
msg.AddAttachment(@"~\sample\adherence.csv", "Testing", null, null, null);
var response = await client.SendEmailAsync(msg);
【问题讨论】:
-
"fails" 和 "does not work" 并没有给我们太多帮助 - 你有没有提出任何异常? SendGrid 管理界面中是否有任何问题的迹象?你检查过
response的内容吗? -
可能重复。尝试使用 Server.MapPath 获取完整路径 stackoverflow.com/questions/37945281/…
-
@JamesThorpe,到目前为止没有引发异常,我在 SendGrid 界面中看不到任何问题。我已经打印出响应的正文,这就是我的“响应”:“System.Net.Http.StreamContent”、“文件”:“~\\sample\\adherence.txt”}}。
-
@PapaBurgundy 我按照您的建议进行了更改 - msg.AddAttachment(System.Web.HttpContext.Current.Server.MapPath(@"~\sample\adherence.csv"), "Testing",空,空,空); .即使在此更改之后,我仍然没有收到电子邮件。但是,如果我注释掉这一行,我会收到电子邮件。
-
我从响应中打印出来的状态码值也表明这是一个 BadRequest。 “响应”:“BadRequest”,“文件”:“~\\sample\\adherence.txt”}}。我不确定在这种情况下我做错了什么。根据我看到的示例,我的代码似乎是正确的。