Reportviewer通过gmail发送电子邮件 [英] Reportviewer send email via gmail

查看:150
本文介绍了Reportviewer通过gmail发送电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个内嵌有Reportviewer的WinForm.

I am working on a WinForm where a reportviewer is embedded.

如何通过gmail/yahoo发送电子邮件并将此报告作为pdf附件? 我看了这篇文章 http://www.codeproject .com/Articles/32109/Send-Mail-and-Print-Report-in-Report-Viewer-Contro ,但不确定它是否仅适用于桌面电子邮件客户端(例如Outlook)或是否支持基于Web的电子邮件客户端?

How do I send email via gmail/yahoo and attach this report as a pdf? I looked at this post http://www.codeproject.com/Articles/32109/Send-Mail-and-Print-Report-in-Report-Viewer-Contro but was not sure if it would work only with desktop email clients such as Outlook or will it support web based email client?

提前谢谢!

推荐答案

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)
  {
  }
}

这篇关于Reportviewer通过gmail发送电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆