我正在使用嵌入了reportviewer的WinForm。
如何通过gmail / yahoo发送电子邮件并将此报告作为pdf附加? 我看了这篇文章 http://www.codeproject.com/Articles/32109/Send-Mail-and-Print-Report-in-Report-Viewer-Contro但不确定它是否仅适用于Outlook等桌面电子邮件客户端,还是支持基于Web的电子邮件客户端?
提前致谢!
答案 0 :(得分:0)
const string HTML_TAG_PATTERN = "<.*?>";
static string StripHTML(string inputString)
{
return Regex.Replace(inputString, HTML_TAG_PATTERN, string.Empty);
}
public static void sendMessage()
{
var username = "john.doe@gmail.com";
var password = "password";
MailAddress MailFrom = new MailAddress("john.doe@gmail.com");
MailAddress MailTo = new MailAddress("john.doe@gmail.com");
var subject = "TEST SUBJECT";
var attachmentPath = "test.pdf";
var mailBody = "<b>test</b>";
NetworkCredential cred = new NetworkCredential(username, password);
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.UseDefaultCredentials = false;
smtp.EnableSsl = true;
smtp.Credentials = cred;
smtp.Port = 587;
MailMessage mail = new MailMessage();
mail.IsBodyHtml = true;
AlternateView avAlternateView = null;
Encoding myEncoding = Encoding.GetEncoding("UTF-8");
avAlternateView = AlternateView.CreateAlternateViewFromString(StripHTML(mailBody), myEncoding, "text/plain");
mail.AlternateViews.Add(avAlternateView);
avAlternateView = AlternateView.CreateAlternateViewFromString(mailBody, myEncoding, "text/html");
mail.AlternateViews.Add(avAlternateView);
mail.Sender = MailFrom;
mail.From = MailFrom;
mail.ReplyTo = MailFrom;
mail.To.Add(MailTo);
mail.Subject = subject;
mail.SubjectEncoding = Encoding.GetEncoding("UTF-8");
mail.BodyEncoding = Encoding.GetEncoding("UTF-8");
Attachment attachment = new Attachment(attachmentPath);
mail.Attachments.Add(attachment);
try
{
smtp.Send(mail);
}
catch (Exception ex)
{
}
}