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("[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;
            }
        }
    }
}
时间: 2024-10-13 04:09:40

C# SendMail 发送邮件的相关文章

linux利用sendmail发送邮件的方法

linux利用sendmail发送邮件, 方法1 安装sendmail即可使用, mail -s "test" [email protected] <content.txt bin/mail会默认使用本地sendmail发送邮件,这样要求本地的机器必须安装和启动Sendmail服务,配置非常麻烦,而且会带来不必要的资源占用. 方法2.利用外部的smpt服务器 而通过修改配置文件可以使用外部SMTP服务器,可以达到不使用sendmail而用外部的smtp服务器发送邮件的目的: 修改

zabbix下如何通过sendmail发送邮件报警

我的zabbix相关环境:          OS: centos 5.4  x86_64       zabbix:   1.8.3     sendmail:  8.13.8-2.el5    在配置zabbix的Email报警之前,需要将sendmail使用的域名进行相应的修改,系统默认为localhost.localdomain,其实不改也行,不过有些pop3服务器会过滤掉来自localhost.localdomain的邮件,导致邮件不能正常查收,所以,最好是改一下 hostname,确

sendmail 发送邮件

最近搭建了一个Nagios的监控系统,主要是为了监控其他机器上的服务 但是搭建完毕后需要有报警的时候通知我,好及时解决问题,网上查了一下觉得还是用sendmail发送比较靠谱,但是我首选邮箱是139邮箱,因为139邮箱有短信通知,其他的比如163短信通知还收费呢,所以就选他了,经济实惠: 首先需要安装sendmail # yum -y install sendmail* 修改:# vi /etc/hosts ::1         localhost localhost.localdomain

Linux SendMail发送邮件失败诊断案例

Linux上Sendmail经常由于一些配置问题,导致邮件发送失败,下面整理.收集了一些邮件发送失败.异常的案例. 案例1:在新服务器上测试sendmail发送邮件时,发现邮件发送不成功,检查/var/log/maillog日志文件发现如下错误(Notice:hostname.邮箱地址等信息使用xxx代替) tail /var/log/maillog May 15 09:43:38 xxxxx sendmail[9182]: s4F1hcQe009182: from=root, size=582

Linux系统下sendmail发送邮件失败的问题

     问题是:安装完sendmail,启动服务后,发送邮件第一次发送成功,后面再次无论怎么发送都不行,换邮箱也不行.在确认我的邮件发送格式正确无误后,想到查看邮件发送日志: [[email protected] ~]# tail -20 /var/log/maillogOct  6 23:26:40 backup-11 sendmail[1307]: t96FQeu7001305: to=<[email protected]>, ctladdr=<[email protected]&

Linux 下安装 sendmail 发送邮件

一. Sendmail安装 在CentOS下,sendmail一般默认是随操作系统一起安装的.如果安装系统时没有安装sendmail服务,手动安装sendmail也很简单: # yum install -y sendmail # yum install -y sendmail-cf 二. Senmail的SMTP认证配置(不需要认证的可忽略此步) 首先确认saslauthd服务是否安装或启动. 安装saslauthd服务:# yum install -y saslauthd 启动saslauth

Linux下使用sendmail发送邮件

现在每天需要将统计数据发送给指定的人员. 使用原始手工的方式每天发送很麻烦,于是想改成一个定时任务,让服务器自动发送. 技术告诉我说他有写过sendmail的一个脚本. 我尝试使用了一下,发现 service sendmail status的时候,总是会出现如下东西.我不知道是不是我的误操作导致的邮件发送阻塞. Oct 5 07:00:01 sgadmin sendmail[30731]: u94N01EY030730: to=<[email protected]>, ctladdr=<

Cent OS 利用Sendmail发送邮件

1 安装相关的软件包: [[email protected] ~]# uname -r 3.10.0-123.9.3.el7.x86_64 [[email protected] ~]# yum -y install sendmail mailx 2 修改host文件,本机IP为192.168.1.12: [[email protected] ~]# hostname ansible [[email protected] ~]# vim /etc/hosts 192.168.1.12  ansib

CentOS如何用sendmail发送邮件

CentOS是一个非常不错的免费开源Linux系统,许多站点首选的平台.然而CentOS默认不能发送邮件,需要发送邮件的童鞋可以安装一个sendmail程序. 安装sendmail 执行: 1 [[email protected] ~]# yum -y install sendmail 程序会自动搜索出sendmail安装程序自动安装. 安装好sendmail以后执行以下命令启动sendmail 1 2 3 [[email protected] ~]# service sendmail star