使用sendGrid附加pdf在c#中不起作用

Har*_* Es 0 .net c# asp.net

我在 c# 中使用 sendGrid 编写了一个邮件发送功能。它工作正常,但是当将生成的 pdf 作为附件附加时,它不起作用。

var client = new SendGridClient(apiKey);
var msg = new SendGridMessage()
{
    From = new EmailAddress(senderMailID, senderName),
    Subject = "ABCD",

};

var attach = new Attachment();
attach.Filename = "ABC.pdf";
attach.Content = "~/Templates/output.pdf";

msg.AddAttachment(attach);

msg.AddTo(new EmailAddress(receiverMailID,receiverName));
    var result = await client.SendEmailAsync(msg);

}
Run Code Online (Sandbox Code Playgroud)

Adr*_*ni6 7

你应该将文件转换为Base64表示(如例子中看到文件的),而不是添加路径。

所需代码示例:

var client = new SendGridClient(apiKey);
var msg = new SendGridMessage()
{
    From = new EmailAddress(senderMailID, senderName),
    Subject = "ABCD",

};
var bytes = File.ReadAllBytes("~/Templates/output.pdf");
var file = Convert.ToBase64String(bytes);
msg.AddAttachment("ABC.pdf", file);
var response = await client.SendEmailAsync(msg);
Run Code Online (Sandbox Code Playgroud)