在C#中发送邮件的方式有2种,一种是使用webmail方式进行发送,另外一种就是采用netmail发送的方式,在采用这2种方式发送邮件时,如果采用公用的邮件服务器(如126邮件服务器,Sina的邮件服务器)都是需要授权认证才能够发送,如果是采用Gmail的话,还会有每天发送邮件的数量等限制。这2种方式是经过我测试通过了的代码,只需要将邮件的用户名和密码修改成自己的即可,同时也可以修改邮件服务器,改成自己配置的邮件服务器。
/// <summary>
/// 发送Email(带验证,采用微软新推荐的方式)
/// </summary>
/// <param name="strTo">收件Email</param>
/// <param name="strCc">抄送Email</param>
/// <param name="strSubject">标题</param>
/// <param name="strBody">内容</param>
/// <param name="UserName">邮箱验证帐号(与web.config里配置的帐号要一样)</param>
/// <param name="from">发信人邮箱,要与UserName对应</param>
/// <param name="strErrorMsg">错误消息</param>
/// <returns></returns>
public static bool WebSendEmail(string strTo, string strCc, string strSubject, string strBody, ref string strErrorMsg)
{
System.Web.Mail.MailMessage message = new System.Web.Mail.MailMessage();
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
bool bState = false;
string strSMTPServer = "";
try
{
strSMTPServer = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["SMTP"]);
strSMTPServer = strSMTPServer == "" ? "localhost" : strSMTPServer;
string strFromAddr = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["FromAddress"]);
if (reg.IsMatch(strFromAddr))
{
message.From = strFromAddr;
}
else
{
throw new Exception("The Email Address is wrong,Please reset the Email Address in the web.config file !");
}
string strTemp = "";
foreach (string str in strTo.Split(';'))
{
if (reg.IsMatch(str))
if (!strTemp.Contains(str))
strTemp += str + ";";
}
message.Cc = "";
foreach (string str in strCc.Split(';'))
{
if (reg.IsMatch(str))
if (!message.Cc.Contains(str))
message.Cc += str + ";";
}
message.Subject = strSubject;
message.BodyFormat = System.Web.Mail.MailFormat.Html;
message.Body ="<html><body>UtilMailMessage001"+ strBody+"- success</body></html>" ;
//下面这块是加载附件的方法
MailAttachment attachment1 =new MailAttachment(@"d:\My Documents\test1.doc");
MailAttachment attachment2 =new MailAttachment("d:\\Documents\\test2.doc");
message.Attachments.Add(attachment1);
message.Attachments.Add(attachment2);
message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
//这里的邮箱帐号和密码一定要和下面配置文件中设置的邮箱的帐号和密码一致
message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "xxxxxxxxx");//邮箱帐号,比如Test11@126.com帐号为:Test11
message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "xxxxxxxx");//邮箱密码
//这个是指明邮件服务器的端口,可以不指定
//message.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", "25");
foreach (string str in strTemp.Split(';'))
{
if (reg.IsMatch(str))
{
message.To = str;
message.BodyEncoding = System.Text.Encoding.UTF8;
System.Web.Mail.SmtpMail.SmtpServer = strSMTPServer;
System.Web.Mail.SmtpMail.Send(message);
}
}
bState = true;
}
catch (Exception ex)
{
System.IO.File.AppendAllText("C:\\Mail_Log.ini", string.Format("{0:yyyy/MM/dd HH:mm:ss}\r\n{1}\r\n\r\n", DateTime.Now, ex.Message));
bState = false;
strErrorMsg = ex.Message;
}
return bState;
}
//测试发送邮件
protected void btnSend_Click(object sender, EventArgs e)
{
try
{
Email.SendEmail("xxxxxx@163.com", "", "Test Email", "Test Send Email");
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}
邮件在webconfig文件中配置如下:
分享到:
相关推荐
在C#中发送邮件的方式有2种,一种是使用webmail方式进行发送,另外一种就是采用netmail发送的方式,这篇文章介绍了c#使用webmail方式发送邮件示例,大家参考使用吧
本次实验中,我完成了对邮件发送过程的监听。我学会了如何使用Libnids进行捕包,并且由于Libnids对TCP流重组有很好的支持。 实验内容:监听WebMail发信交互过程。 哈工大信息内容安全实验报告。
HMail Server+WebMail搭建邮件服务器+详细说明,邮件发送,亲测可用 有php 和asp两种可选 ,亲测可用。
邮件系统webmail版,jsp+javabean+servlet模式实现!!!
LumiSoft Mail Server是一个开源,免费的邮件服务器,能运行在.net/mono上,支持SMTP/POP3/IMAP4/WebMail,支持MS Sql Server/PostgreSql/Xml等数据存储方式.很适合中小型企业使用,稳定性和兼容性上都没什么问题。 1、...
开源hmailserver免费邮箱+webmail asp.net
HmaiServer邮件服务器及AfterLogic webmail安装配置向导.pdf
WebMail邮件服务器搭建:postfix+dovecot+roundcube (原理加全操作-详细)
邮件服务器支持SMTP/POP3/IMAP/WebMail.
WebMail邮件服务器
MDaemon邮件服务器-webmail、outlook、foxmail的设置[整理].pdf
自己多次用过的Hmailserver+webmail搭建邮件服务器安装包和操作说明
DBMail邮件服务器Webmail.docx
c#Web Mail c#Webc#Web Mail c#Web Mail c#Web Mail Mail c#Web Mail
webmail-linker, 电子邮件提供商的电子邮件网站集合 电子邮件链接器电子邮件提供程序的电子邮件网站集合关于 许多网站需要在用户注册时使用电子邮件双重选项。 这个项目想要修复用户流中的结果,当用户必须手动 ...
号称支持POP3和IMAP的Webmail从7.0版之后实际上就不支持POP3了,对于需要将收到的邮件保存到数据库的系统开发人员,只能寻找Webmail在7.0之前的版本进行参考。这个6.3.4版能够支持POP3,把邮件从服务器下载并保存到...
webmail程序最新版的php完整源代码分享提供给大家分析与下载
邮件服务器支持SMTP/POP3/IMAP/WebMail
NOCC是一个webmail客户端,支持连接IMAP和POP3服务器收取邮件,利用SMTP服务器发送email。支持MIME附件邮件。支持三十几种语言。易于安装无需要数据库支持。