Sending an email with attachment using SendGrid

2019-01-19 01:11发布

问题:

 var myMessage = new SendGridMessage();
            myMessage.From = new MailAddress("info@email.com");
            myMessage.AddTo("Cristian <myemail@email.com>");
            myMessage.Subject = user.CompanyName + "has selected you!";
            myMessage.Html = "<p>Hello World!</p>";
            myMessage.Text = "Hello World plain text!";

           // myMessage.AddAttachment("C:\test\test.txt");



            var apiKey = "";
            var transportWeb = new Web(apiKey);
            transportWeb.DeliverAsync(myMessage);

Basically I can make the email work, and the moment I attempt to add an attachment it doesn't send it. I tried different paths and different ways of writing the path, I am not sure what is going wrong, every single tutorial I have found shows it should work like this.

回答1:

I got it to work, turns out I just needed a virtual path:

myMessage.AddAttachment(Server.MapPath(@"~\img\logo.png"));


回答2:

\ it is a escape character

//Initialize with a regular string literal.

myMessage.AddAttachment(@"C:\test\test.txt");

else // Initialize with a verbatim string literal.

myMessage.AddAttachment("C:\\test\\test.txt");