Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 附加pdf时sendGrid在c中不起作用#_C#_Asp.net_.net - Fatal编程技术网

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

C# 附加pdf时sendGrid在c中不起作用#,c#,asp.net,.net,C#,Asp.net,.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

我已经在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);

}

您应该将文件转换为文件的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);

您可以通过指定哪些不起作用来改进此问题。例如,包括抛出的异常。您的代码将文件路径指定为附件的内容