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\">   ";
  MailBody += dt.Columns[hcol].ColumnName;
  MailBody += "   </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\">   ";
   MailBody += dt.Rows[row][col].ToString();
   MailBody += "   </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;
  }
 }
 }
}

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

(0)

相关推荐

  • C#编程实现发送邮件的方法(可添加附件)

    本文实例讲述了C#编程实现发送邮件的方法.分享给大家供大家参考,具体如下: using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Mail; namespace WindowsFo

  • C#实现发送邮件的三种方法

    本文实例讲述了C#实现发送邮件的三种方法.分享给大家供大家参考.具体方法分析如下: 一.问题: 最近公司由于一个R&I项目的需要,用户要求在购买产品或出货等一些环节,需要发送邮件提醒或者说每周一让系统自动采集数据发送一封E-mail,因此我也就找来相关资料,写了一个Demo分享给大家,大家共同学习学习. 二.实现代码: 通过.Net FrameWork 2.0下提供的"System.Net.Mail"可以轻松的实现,本文列举了3种途径来发送: 1.通过Localhost: 2.

  • C#.NET发送邮件的实例代码

    复制代码 代码如下: using System;using System.Collections.Generic;using System.Text;using System.Net.Mail;using System.Net;namespace MyQuery.Utils{    /// <summary>    /// 封装邮件处理    /// by 贾世义 2011-6-3    /// </summary>    public static class MailHelpe

  • c#调用qq邮箱smtp发送邮件修改版代码分享

    复制代码 代码如下: try            {                MailMessage mm = new MailMessage();                MailAddress Fromma = new MailAddress("xxxx@qq.com");                MailAddress Toma = new MailAddress("MMMMMMM@qq.com", null);              

  • c# SendMail发送邮件实例代码

    复制代码 代码如下: using System;using System.Collections.Generic;using System.Net;using System.Net.Mail;using System.Text; namespace Common{    /// <summary>    /// 基于system.net.mail发送邮件,支持附件    /// </summary>    public class NetSendMail    {        p

  • c#实现服务器性能监控并发送邮件保存日志

    客户端代码 复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.ServiceProcess;using System.Text;using System.Threading;using System.Management;using System.Configurat

  • c#异步发送邮件的类

    首先要定义一个邮件信息的基类,如下所示: 复制代码 代码如下: /// <summary>/// Base message class used for emails/// </summary>public class Message{#region Constructor/// <summary>/// Constructor/// </summary>public Message(){}#endregion #region Properties/// &

  • C#中发送邮件代码

    始找的代码只能发送无SMTP验证的邮件,但现在很多EMAIL发送时都需要验证,后来查找了下MSDN的帮助,找到了发送验证的代码,贴出来希望对大家有所帮助! 复制代码 代码如下: public static int sendmail(string to, string body,string subject) { try { int nContain = 0; ///添加发件人地址 string from = "你的发送EMAIL"; MailMessage mailMsg = new

  • c#利用webmail邮件系统发送邮件示例分享

    在C#中发送邮件的方式有2种,一种是使用webmail方式进行发送,另外一种就是采用netmail发送的方式,在采用这2种方式发送邮件时,如果采用公用的邮件服务器(如126邮件服务器,Sina的邮件服务器)都是需要授权认证才能够发送,如果是采用Gmail的话,还会有每天发送邮件的数量等限制.这2种方式是经过我测试通过了的代码,只需要将邮件的用户名和密码修改成自己的即可,同时也可以修改邮件服务器,改成自己配置的邮件服务器. 复制代码 代码如下: /// <summary>    /// 发送Em

  • c#使用netmail方式发送邮件示例

    复制代码 代码如下: /// <summary>    /// NetMail方式测试通过    /// </summary>    private void TestSend()    {        System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage();        //收件人地址        mm.To.Add(new System.Net.Mail.MailAddress("xx

随机推荐