【发布时间】:2021-08-24 20:50:25
【问题描述】:
尝试使用 Mailgun 和 dotnet 核心 Azure 函数中的 Httpclient 发送带有附件的电子邮件。
Mailguns 文档使用 RestClient,我不想在代码库中使用或引入它,而且我很难让附件与 HttpClient 一起使用。
虽然答案似乎不适用于 Mailgun API 的 v3,但这个问题与我的完全相同。 Email Attachments in HttpClient
代码的重要部分如下所示:
var formContent = new MultipartFormDataContent();
formContent.Add(new StringContent($"Testing This thing <{_settings.CurrentValue.MailgunFrom}>"), "from");
formContent.Add(new StringContent(string.Join(",", to)), "to");
formContent.Add(new StringContent(subject), "subject");
formContent.Add(new StringContent(body), "text");
ByteArrayContent fileContent = new ByteArrayContent(theBytes);
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data")
{
Name = "Daily report",
FileName = System.IO.Path.GetFileName(somelongFilepath)
};
formContent.Add(fileContent);
var result = _httpClient.PostAsync($"v3/{_settings.CurrentValue.MailgunDomain}/messages", formContent).Result;
result.EnsureSuccessStatusCode();
我尝试了各种 ContentDispositon,包括inline 和attachment,都没有生成带附件的电子邮件。
我确实收到了电子邮件,只是没有任何附件。
如何使用 HTTPClient 发送电子邮件并包含附件?
【问题讨论】:
-
您是否尝试过这样做,
formContent.Add(fileContent,'attachment',System.IO.Path.GetFileName(somelongFilepath));并删除更改 ContentDispositionfileContent.Headers.ContentDisposition...的代码部分 -
就是这样!!非常感谢朋友!。如果您发布答案,我会很乐意接受。
标签: c# .net-core httpclient mailgun