C# SendMail发送邮件功能实现

最近因为用的发送邮件的地方,就查询了资料,总结以下几个方法

  1、利用新浪邮箱发送

  2、利用公司邮箱发送

  3、利用CDO发送,这种方式要引用Interop.ADODB.dll(http://www.nodevice.com/dll/Interop_ADODB_dll/item20357.html)和Interop.CDO.dll()两个文件

具体代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Mail;
using System.Data;

using CDO;
using ADODB;
namespace SendMailTest
{
 class Program
 {
 static void Main(string[] args)
 {
  SendMail();
 }

 public static string SendMsg()
 {
  DataTable dt = new DataTable();
  dt.Columns.Add("name");
  dt.Columns.Add("date");
  dt.Columns.Add("area");
  dt.Columns.Add("orgnizer");
  dt.Columns.Add("keyword");

  for (int i = 0; i < 10; i++)
  {
  DataRow dr = dt.NewRow();
  dr["name"] = "北文中心影视产权交易平台•影视项目路演季---路演项目征集" + i;
  dr["date"] = "2017-06-30";
  dr["area"] = "北京市 北京电影学院文创园(平房园区)" + i;
  dr["orgnizer"] = "北文中心影视产权交易" + i;
  dr["keyword"] = "影视" + i;
  dt.Rows.Add(dr);

  }

  string MailBody = "

以下内容为系统自动发送,请勿直接回复,谢谢。

"; MailBody += "
"; MailBody += "
"; for (int hcol = 0; hcol < dt.Columns.Count; hcol++) { MailBody += ""; } MailBody += ""; for (int row = 0; row < dt.Rows.Count; row++) { MailBody += ""; for (int col = 0; col < dt.Columns.Count; col++) { MailBody += ""; } MailBody += ""; } MailBody += "
   "; MailBody += dt.Columns[hcol].ColumnName; MailBody += "   
   "; MailBody += dt.Rows[row][col].ToString(); MailBody += "   
"; MailBody += "
"; return MailBody; } public static void SendMail() { MailMessage msg = new MailMessage(); msg.To.Add("[email protected]"); msg.CC.Add("[email protected]"); msg.From = new MailAddress("[email protected]", "ffff", System.Text.Encoding.UTF8); /* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/ msg.Subject = "这是测试邮件";//邮件标题 msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码 //msg.Body = "邮件内容";//邮件内容 msg.Body = SendMsg(); msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 msg.IsBodyHtml = true;//是否是HTML邮件 msg.Priority = MailPriority.High;//邮件优先级 SmtpClient client = new SmtpClient(); //client.Host = "smtp.ctrchina.cn"; client.Host = "210.77.136.200"; client.Port = 465; //client.EnableSsl = true;//经过ssl加密 client.Credentials = new System.Net.NetworkCredential("[email protected]", "password"); object userState = msg; try { //client.SendAsync(msg, userState); client.Send(msg); } catch (System.Net.Mail.SmtpException ex) { return; } } public static void SendSinaMail() { MailMessage msg = new MailMessage(); msg.To.Add("[email protected]"); //msg.To.Add("[email protected]"); msg.CC.Add("[email protected]"); msg.From = new MailAddress("[email protected]", "shao_sks", System.Text.Encoding.UTF8); /* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/ msg.Subject = "这是测试邮件";//邮件标题 msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码 //msg.Body = "邮件内容";//邮件内容 msg.Body = SendMsg(); msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 msg.IsBodyHtml = true;//是否是HTML邮件 msg.Priority = MailPriority.High;//邮件优先级 SmtpClient client = new SmtpClient(); client.Host = "smtp.sina.com"; client.Port = 25; //client.EnableSsl = true;//经过ssl加密 client.Credentials = new System.Net.NetworkCredential("username", "password"); object userState = msg; try { //client.SendAsync(msg, userState); client.Send(msg); } catch (System.Net.Mail.SmtpException ex) { return; } } public static void SenMail1() { try { CDO.Message oMsg = new CDO.Message(); Configuration MyConfig = new ConfigurationClass(); Fields MyFields = MyConfig.Fields; MyFields[@"http://schemas.microsoft.com/cdo/configuration/sendusing"].Value = 2; MyFields[@"http://schemas.microsoft.com/cdo/configuration/smtpserverport"].Value = 465; MyFields[@"http://schemas.microsoft.com/cdo/configuration/smtpserver"].Value = "210.77.136.200"; MyFields.Update(); oMsg.Configuration = MyConfig; oMsg.Subject = "Test SMTP2911111"; oMsg.HTMLBody = SendMsg(); oMsg.From = "[email protected]"; oMsg.To = "[email protected]"; oMsg.Send(); } catch (Exception ex) { return; } } } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(C# SendMail发送邮件功能实现)