C# Reportviewer通过gmail发送电子邮件

C# Reportviewer通过gmail发送电子邮件,c#,smtpclient,report-viewer2010,C#,Smtpclient,Report Viewer2010,我正在开发一个WinForm,其中嵌入了reportviewer 如何通过gmail/yahoo发送电子邮件并将此报告作为pdf格式附加? 我看了这篇文章 但不确定它是否只适用于Outlook等桌面电子邮件客户端,还是支持基于web的电子邮件客户端 提前谢谢 const string HTML_TAG_PATTERN=”“; const string HTML_TAG_PATTERN = "<.*?>"; static string StripHTML(string inputStr

我正在开发一个WinForm,其中嵌入了reportviewer

如何通过gmail/yahoo发送电子邮件并将此报告作为pdf格式附加? 我看了这篇文章 但不确定它是否只适用于Outlook等桌面电子邮件客户端,还是支持基于web的电子邮件客户端

提前谢谢

const string HTML_TAG_PATTERN=”“;
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)
  {
  }
}
静态字符串StripHTML(字符串输入字符串) { 返回Regex.Replace(inputString,HTML\u TAG\u PATTERN,string.Empty); } 公共静态void sendMessage() { var username=“约翰。doe@gmail.com"; var password=“password”; MailAddress MailFrom=新的邮寄地址(“john。doe@gmail.com"); MailAddress MailTo=新的邮寄地址(“john。doe@gmail.com"); var subject=“测试对象”; var attachmentPath=“test.pdf”; var mailBody=“测试”; NetworkCredential cred=新的NetworkCredential(用户名、密码); System.Net.Mail.SmtpClient smtp=新系统.Net.Mail.SmtpClient(); smtp.Host=“smtp.gmail.com”; smtp.UseDefaultCredentials=false; smtp.EnableSsl=true; smtp.Credentials=cred; smtp.Port=587; MailMessage mail=新的MailMessage(); mail.IsBodyHtml=true; AlternateView avAlternateView=null; Encoding myEncoding=Encoding.GetEncoding(“UTF-8”); avAlternateView=AlternateView.CreateAlternateViewFromString(StripHTML(邮件正文),myEncoding,“text/plain”); mail.alternateView.Add(AvalernateView); avAlternateView=AlternateView.CreateAlternateViewFromString(邮件体,myEncoding,“text/html”); mail.alternateView.Add(AvalernateView); mail.Sender=MailFrom; mail.From=MailFrom; mail.ReplyTo=MailFrom; mail.To.Add(MailTo); mail.Subject=主题; mail.SubjectEncoding=Encoding.GetEncoding(“UTF-8”); mail.BodyEncoding=Encoding.GetEncoding(“UTF-8”); 附件附件=新附件(attachmentPath); mail.Attachments.Add(附件); 尝试 { smtp.发送(邮件); } 捕获(例外情况除外) { } }