ASP.NET发送电子邮件

原文链接:http://www.cnblogs.com/wolfocme110/p/4234576.html

1.补充知识

(1)POP3和SMTP服务器是什么?

简单点来说:POP3 用于接收电子邮件 ,SMTP 用于发送电子邮件。

(1)POP3具体指什么?

POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。POP3协议是TCP/IP协议族中的一员,,由RFC 1939 定义

(2)SMTP具体是指什么?

SMTP的全称是"Simple Mail Transfer Protocol",即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。

 

2.System.Net.Mail

使用ASP.NET发送电子邮件,需要引用System.Net.Mail命名空间。System.Net.Mail 命名空间包含用于将电子邮件发送到简单邮件传输协议 (SMTP) 服务器进行传送的类。

(1)命名空间下有三个比较主要的类:

MailMessage:提供属性和方法来创建一个邮件消息对象,即邮件内容。

Attachment:提供属性和方法来创建一个邮件附件对象,即邮件附件。

SmtpClient:将电子邮件传输到您指定用于邮件传送的 SMTP 主机。

(2)MailMessage类:

From:发送邮件的地址 
To:接收邮件的地址 
Subject:邮件的标题 
Priority:邮件的优先级(分别为为High,Low,Normal) 
Attachments:电子邮件的数据的附件集合
Bcc:密送地址 
Cc:抄送地址 
Body:邮件正文
SubjectEncoding:电子邮件的主题内容使用的编码

IsBodyHtml:邮件正文是否为 Html 格式的值

详细参考:MailMessage

(3)Attachment类:

详细参考:Attachment

(4)SmtpClient类:

DeliveryMethod:指定如何处理待发的电子邮件

Host:SMTP 事务的主机的名称或 IP 地址

Credentials:设置用于验证发件人身份的凭据

详细参考:SmtpClient

 

 3.ASP.NET发送邮件两种方式

(1)通过邮件服务提供商的SMTP来发送邮件

首先需要注册对应服务提供商免费邮箱,因为你要使用邮件服务提供商的SMTP,他们需要对身份进行验证,这样可以避免产生大量的垃圾邮件。

有三个是重要的信息:SMTP服务器、用户名、密码。从网上收集了几个类,可以参考下。

 

#region
    /// <summary>
    /// 发送邮件
    /// </summary>
    /// <param name="mailTo">要发送的邮箱</param>
    /// <param name="mailSubject">邮箱主题</param>
    /// <param name="mailContent">邮箱内容</param>
    /// <returns>返回发送邮箱的结果</returns>
    public static bool SendEmail(string mailTo,string mailSubject,string mailContent)
    {
        // 设置发送方的邮件信息,例如使用网易的smtp
        string smtpServer = "smtp.163.com"; //SMTP服务器
        string mailFrom = "XXX@163.com"; //登陆用户名
        string userPassword = "XXX";//登陆密码

        // 邮件服务设置
        SmtpClient smtpClient=new SmtpClient();
        smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
        smtpClient.Host = smtpServer; //指定SMTP服务器
        smtpClient.Credentials = new System.Net.NetworkCredential(mailFrom, userPassword);//用户名和密码

        // 发送邮件设置        
        MailMessage mailMessage = new MailMessage(mailFrom, mailTo); // 发送人和收件人
        mailMessage.Subject = mailSubject;//主题
        mailMessage.Body = mailContent;//内容
        mailMessage.BodyEncoding = Encoding.UTF8;//正文编码
        mailMessage.IsBodyHtml = true;//设置为HTML格式
        mailMessage.Priority = MailPriority.Low;//优先级

        try
        {
            smtpClient.Send(mailMessage); // 发送邮件
            return true;
        }
        catch (SmtpException ex)
        {
            return false;
        }
    }

(2)利用本机的SMTP虚拟服务器的SMTP来发送邮件

需要进行SMTP配置,还是第一种简单实用。

 

4.参考资料:常用邮件服务器

gmail.com:
POP3服务器地址:pop.gmail.com
SMTP服务器地址:smtp.gmail.com

qq.com:

POP3服务器地址:pop.qq.com
SMTP服务器地址:smtp.qq.com

163.com: 
POP3服务器地址:pop.163.com 
SMTP服务器地址:smtp.163.com 

sina.com: 

POP3服务器地址:pop3.sina.com.cn 
SMTP服务器地址:smtp.sina.com.cn 

yahoo.com: 
POP3服务器地址:pop.mail.yahoo.com 
SMTP服务器地址:smtp.mail.yahoo.com 

sohu.com: 
POP3服务器地址:pop3.sohu.com 
SMTP服务器地址:smtp.sohu.com 

china.com: 
POP3服务器地址:pop.china.com 
SMTP服务器地址:smtp.china.com 


21cn.com: 
POP3服务器地址:pop.21cn.com 
SMTP服务器地址:smtp.21cn.com sina.com: 

转载于:https://www.cnblogs.com/wolfocme110/p/4234576.html

展开阅读全文
博主设置当前文章不允许评论。

asp.net 发送电子邮件怎么出错?

06-18

rn照书上的例子,因为Smtp服务器需验证,于是又有网上找了段代码加上(Fields.Add那几句)rnrn Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)rn Dim mes As MailMessage = New MailMessage()rn mes.From = "duanl@kmtelecom.com.cn"rn mes.To = "duanl@kmtelecom.com.cn"rn mes.Subject = "duanl@kmtelecom.com.cn"rn mes.Body = "duanl@kmtelecom.com.cn"rn SmtpMail.SmtpServer = "smtp.yuneach.com"rn mes.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1")rn mes.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "user1")rn mes.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "user1")rnrn SmtpMail.Send(mes)rn Response.Write("OK")rn End Subrnrnrn结果:rnrn“/”应用程序中的服务器错误。rn--------------------------------------------------------------------------------rnrnó?·t???÷μ?′?ê?á??ó꧰ü?£rnrn说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 rnrn异常详细信息: System.Runtime.InteropServices.COMException: ó?·t???÷μ?′?ê?á??ó꧰ü?£rnrnrn源错误: rnrnrn行 17: mes.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "jtdns123")rn行 18: rn行 19: SmtpMail.Send(mes)rn行 20: Response.Write("OK")rn行 21: End Subrn rn 论坛

ASP.Net 发送电子邮件并添加附件

04-05

在网上参考了一些资料,或多或少有些问题,老是提示用法已过时,最无奈的是我的input的ID在VS不能通过VS的代码补全功能显示出来,请大家指教,附上部分代码如下:rnE-mail.aspxrn[code=HTML][/code] rn rn 发送电子邮件rn rn rn rn 收件人:rn rn rn rn rn rn 发件人:rn rn rn rn rn rn 附 件:rn [color=#FF0000] rn [/color] [color=#FF0000](为什么代码补全能不能显示File1,而其他的如senter,geter都可以在提示中找到???) [/color] rn rn rn 主 题:rn rn rn rn rn rn 正 文:rn rn rn rn rn rn rn rn rn rn rn rn rnrnE-mail.aspx.csrnprotected void SendButton_Click(object sender, EventArgs e)rn rn MailMessage objMailMessage;rn MailAttachment objMailAttachment;rnrn // 创建一个附件对象rn objMailAttachment = new MailAttachment("D:\\mail.txt");//发送邮件的附件rn // 创建邮件消息rn objMailMessage = new MailMessage();rn objMailMessage.From = "mingsheng@yeah.com";//源邮件地址rn objMailMessage.To = this.geter.Text.ToString();//目的邮件地址,也就是发给我哈rn objMailMessage.Subject = this.TalkTitle.Text.ToString();//发送邮件的标题rn objMailMessage.Body = "邮件发送标内容:测试一下是否发送成功!";//发送邮件的内容rn objMailMessage.Attachments.Add(objMailAttachment);//将附件附加到邮件消息对象中rnrn //SMTP地址rn SmtpMail.SmtpServer = "192.168.1.100";rnrn //开始发送邮件rn SmtpMail.Send(objMailMessage);rnrnrn rn警告 2 “System.Web.Mail.MailMessage”已过时:“The recommended alternative is System.Net.Mail.MailMessage. http://go.microsoft.com/fwlink/?linkid=14202” E:\C#\ASP.net\MingSheng\Web\E-mail.aspx.cs 22 9 E:\...\Web\rn警告 3 “System.Web.Mail.MailAttachment”已过时:“The recommended alternative is System.Net.Mail.Attachment. http://go.microsoft.com/fwlink/?linkid=14202” E:\C#\ASP.net\MingSheng\Web\E-mail.aspx.cs 23 9 E:\...\Web\rn警告 4 “System.Web.Mail.MailAttachment”已过时:“The recommended alternative is System.Net.Mail.Attachment. http://go.microsoft.com/fwlink/?linkid=14202” E:\C#\ASP.net\MingSheng\Web\E-mail.aspx.cs 26 33 E:\...\Web\rn错误 5 “System.Web.UI.WebControls.FileUpload”是“类型”,但此处被当做“变量”来使用 E:\C#\ASP.net\MingSheng\Web\E-mail.aspx.cs 26 48 E:\...\Web\rn警告 6 “System.Web.Mail.MailMessage”已过时:“The recommended alternative is System.Net.Mail.MailMessage. http://go.microsoft.com/fwlink/?linkid=14202” E:\C#\ASP.net\MingSheng\Web\E-mail.aspx.cs 28 30 E:\...\Web\rn警告 7 “System.Web.Mail.SmtpMail”已过时:“The recommended alternative is System.Net.Mail.SmtpClient. http://go.microsoft.com/fwlink/?linkid=14202” E:\C#\ASP.net\MingSheng\Web\E-mail.aspx.csrnrn rn 论坛

没有更多推荐了,返回首页