C# SendMail发送邮件功能实现

 更新时间:2017年06月30日 14:18:08   作者:shaomine  
这篇文章主要为大家详细介绍了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 = "<p style=\"font-size: 10pt\">以下内容为系统自动发送,请勿直接回复,谢谢。</p><table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" bgcolor=\"000000\" style=\"font-size: 10pt;line-height: 15px;\">";
  MailBody += "<div align=\"center\">";
  MailBody += "<tr>";
  for (int hcol = 0; hcol < dt.Columns.Count; hcol++)
  {
  MailBody += "<td bgcolor=\"999999\">&nbsp;&nbsp;&nbsp;";
  MailBody += dt.Columns[hcol].ColumnName;
  MailBody += "&nbsp;&nbsp;&nbsp;</td>";
  }
  MailBody += "</tr>";

  for (int row = 0; row < dt.Rows.Count; row++)
  {
  MailBody += "<tr>";
  for (int col = 0; col < dt.Columns.Count; col++)
  {
   MailBody += "<td bgcolor=\"dddddd\">&nbsp;&nbsp;&nbsp;";
   MailBody += dt.Rows[row][col].ToString();
   MailBody += "&nbsp;&nbsp;&nbsp;</td>";
  }
  MailBody += "</tr>";
  }
  MailBody += "</table>";
  MailBody += "</div>";
  return MailBody;
 }

 public static void SendMail()
 {
  MailMessage msg = new MailMessage();
  msg.To.Add("xxx@ctrchina.cn");
  
  msg.CC.Add("xxxx@sina.com");

  msg.From = new MailAddress("ffff@ctrchina.cn", "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("xxx@ctrchina.cn", "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("xxx@ctrchina.cn");
  //msg.To.Add("xxx@sina.com");

  
  msg.CC.Add("xxx@sina.com");

  msg.From = new MailAddress("xxx@sina.com", "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 = "shaoks@ctrchina.cn";
  oMsg.To = "shaoks@ctrchina.cn";


  oMsg.Send();


  }
  catch (Exception ex)
  {
  return;
  }
 }
 }
}

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

相关文章

  • C# 获取本机IP地址(IPv4和IPv6)

    C# 获取本机IP地址(IPv4和IPv6)

    本文主要介绍了C# 获取本机IP地址(IPv4和IPv6),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 详解C#如何实现一个事件总线

    详解C#如何实现一个事件总线

    Event Bus(事件总线)是一种用于在应用程序内部或跨应用程序组件之间进行事件通信的机制,它允许不同的组件通过发布和订阅事件来进行解耦和通信,本文给大家介绍了C# 如何实现一个事件总线,需要的朋友可以参考下
    2024-10-10
  • c# Linq常用的小技巧

    c# Linq常用的小技巧

    这篇文章主要介绍了c# Linq常用的小技巧,文中讲解非常详细,示例代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • automation服务器不能创建对象 解决方法

    automation服务器不能创建对象 解决方法

    本文主要介绍如何解决“automation服务器不能创建对象”错误,从而解决Visual Studio.Net不能正常使用的问题,需要的朋友可以参考下。
    2016-06-06
  • 自己编写sqlhelper类示例分享

    自己编写sqlhelper类示例分享

    这篇文章主要介绍了自己编写sqlhlper类示例,需要的朋友可以参考下
    2014-04-04
  • C#获取每个年,月,周的起始日期和结束日期的方法

    C#获取每个年,月,周的起始日期和结束日期的方法

    这篇文章主要介绍了C#获取每个年,月,周的起始日期和结束日期的方法,涉及C#时间与日期基本操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • C#实现根据字节数截取字符串并加上省略号的方法

    C#实现根据字节数截取字符串并加上省略号的方法

    这篇文章主要介绍了C#实现根据字节数截取字符串并加上省略号的方法,比较实用的功能,需要的朋友可以参考下
    2014-07-07
  • C#实现图片切割的方法

    C#实现图片切割的方法

    这篇文章主要介绍了C#实现图片切割的方法,涉及C#使用Graphics实现图片属性的相关设置、保存等操作技巧,需要的朋友可以参考下
    2017-06-06
  • c#滚动字幕动画窗体制作步骤

    c#滚动字幕动画窗体制作步骤

    在本篇文章里小编给大家分享了c#滚动字幕动画窗体制作步骤和相关代码,需要的朋友们可以学习下。
    2019-02-02
  • Unity使用LineRender实现绘画功能

    Unity使用LineRender实现绘画功能

    这篇文章主要为大家详细介绍了Unity使用LineRender实现绘画功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07

最新评论