当我尝试发送带有位于Google驱动器或存储库路径中的附件的电子邮件时,它只会发送电子邮件,而不会发送文件。
我尝试以字节为单位下载文件,然后将其作为附件发送
使用的代码如下
List<Attachment> files = new List<Attachment>
{
new Attachment()
{
Content = "BwdW",
Type = "image/png",
Filename = Server.MapPath("~/Content/IMG/EmailHeader.png"),
Disposition = "inline",
ContentId = "EmailHeader"
}
};
这是方法:
public Boolean EnvioCorreo_Copias_Archivos(string cuerpo, string asunto, string correoEmisor, List<EmailAddress> correoReceptor,
List<Attachment> Archivos)
{
try
{
var clientSendGrid = new SendGridClient("Key_Sendgrid");
var from = new EmailAddress(correoEmisor, "Alias");
List<EmailAddress> tos = correoReceptor;
var body = cuerpo;
var subject = asunto;
var plainTextContent = "";
var htmlContent = body;
var showAllRecipients = true;
var msg = MailHelper.CreateSingleEmailToMultipleRecipients(from, tos, subject, plainTextContent, htmlContent, showAllRecipients);
msg.AddAttachments(Archivos);
clientSendGrid.SendEmailAsync(msg).Wait();
return true;
}
catch (Exception)
{
return false;
}
}
答案 0 :(得分:2)
我个人将它用于单个电子邮件附件:
var Message = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
var bytes = System.IO.File.ReadAllBytes(AttachmentPath);
var File = Convert.ToBase64String(bytes);
Message.AddAttachment(FileName, File);
APIResponse = await client.SendEmailAsync(Message).ConfigureAwait(false);
答案 1 :(得分:0)
我刚刚确认此功能可用于SendGrid,附件工作正常:
var msg = new MailMessage(fromAddress, toAddress)
{
Subject = "attachment test",
IsBodyHtml = true,
Body = "this is the body"
};
var attachment = new Attachment(attachmentPath);
msg.Attachments.Add(attachment);
using (var client = new SmtpClient("smtp.sendgrid.net"))
{
client.UseDefaultCredentials = false;
client.EnableSsl = true;
client.Port = 587;
client.Credentials = new NetworkCredential("key","password");
await client.SendMailAsync(msg);
}