ASP.Net使用jmail和System.Net.Mail发送邮件

ASP.Net使用jmail发送邮件
环境
1.服务器上有jmail.dll文件(我用的是Ver4.5),并成功注册:C:\regsvr32 D:\jmail.dll

2.VS2010中添加引用
代码如下:
using System;
namespace WebApplication2
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Button1_Click(object sender, EventArgs e)
        {
            SendEmail();
        }
        public void SendEmail()
        {
            jmail.Message Jmail = new jmail.Message();
            Jmail.ContentType = "text/html";
            Jmail.Silent = false;
            Jmail.Logging = true;
            Jmail.Charset = "GB2312";
            Jmail.AddRecipient("xxx@163.com", "显示名");
            //群发添加Jmail.AddRecipient("***@***", "显示名");
            Jmail.From = "FromEmail";
            Jmail.FromName = "Name";
            Jmail.MailServerUserName = "UserName";//注是要写全称 并且不要带有下划线的用户名
            Jmail.MailServerPassWord = "PassWord";//不要带有下划线的密码
            
            Jmail.Subject = "主题";
            //Jmail.Body = "内容";//文本格式正文
            //html格式正文
            Jmail.AppendHTML("<html><table  bgcolor=#FFFFCE border=1>");
            Jmail.AppendHTML("<tr><td>正文</td></tr> ");
            Jmail.AppendHTML("</table></html>");
            
            Jmail.Send("stmp.***.com", false);
            Jmail.Close();
        }
    }
}
也可以在程序中设置以下内容,从web.config 的AppSettings获取你设置的账号密码和发送服务器等信息
   String UserName = ConfigurationManager.AppSettings["UserName"].ToString();
   String PassWord = ConfigurationManager.AppSettings["PassWord"].ToString();
   String SendServer = ConfigurationManager.AppSettings["SendServer"].ToString();

web.config中
<appSettings >
    <!-- 你邮箱的账号密码和邮箱的发送服务器等信息 -->
    <add key="UserName" value="abc123" />
    <add key="PassWord" value="mima" />
    <add key="SendServer" value="smtp.abc.com" />
</appSettings>
*************************************************************
ASP.Net使用System.Net.Mail发送邮件

using System;
using System.Net.Mail;
namespace WebApplication2
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Button1_Click(object sender, EventArgs e)
        {
            SendEmail();
        }
        
        public void SendEmail()
        {
            MailMessage newEmail = new MailMessage();
            newEmail.From = new MailAddress("***@163.com","显示名");//发送方邮件
            //发送对象,可群发
            newEmail.To.Add(new MailAddress("***@***"));  //接收方邮箱一
            //newEmail.To.Add(new MailAddress("132@hotmail.com"));  //接收方邮箱二

            newEmail.Subject = "测试邮件";  //标题

            newEmail.Body = "<p><b>这里是内容</b></p>"; //内容,html格式,也可以是普通文本格式;
            newEmail.Body += "<p><b>这里是内容</b></p>";

            //附件
            //Attachment MsgAttach = new Attachment(this.FileUpload1.PostedFile.FileName);//可通过一个FileUpload地址获取附件地址
            //newEmail.Attachments.Add(MsgAttach);

            #region Deployment
            newEmail.IsBodyHtml = true;                //是否支持html
            newEmail.Priority = MailPriority.Normal;  //优先级
            #endregion

            //发送方服务器信息
            SmtpClient smtpClient = new SmtpClient();
            smtpClient.UseDefaultCredentials = true;//安全认证
            smtpClient.Credentials = new System.Net.NetworkCredential("user", "password");//安全认证
            smtpClient.Host = "stmp.163.com"; //主机

            //smtpClient.Send(newEmail);   //同步发送,程序将被阻塞

            #region 异步发送, 会进入回调函数SendCompletedCallback,来判断发送是否成功
            smtpClient.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);//回调函数
            string userState = "测试";
            smtpClient.SendAsync(newEmail, userState);//异步发送, WEB页面需添加<% @ pageAsync="true"%>
            #endregion
        }
        private static void SendCompletedCallback(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
        {
            if (e.Cancelled)  //邮件发送被取消
            {
            }
            if (e.Error != null)   //邮件发送失败
            {
            }
            else   //发送成功
            {
            }
        }
    }

}


如果上述用vb.net语言编写,其委托调用时,将
smtpClient.SendCompleted += New SendCompletedEventHandler(SendCompletedCallback) '//回调函数
修改为
AddHandler smtpClient.SendCompleted, AddressOf SendCompletedCallback

调用的函数改为
Private Shared Sub SendCompletedCallback(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
        If (e.Cancelled) Then

        End If
        If (e.Error IsNot Nothing) Then '邮件发送失败

        Else '//发送成功
        End If
End Sub

jmail  jmail是一种服务器端的邮件发送组件,和个人用的客户端邮件软件不一样的。jmail是在服务器上给程序用来发邮件用的,除了软件编程人员,其他人一般平常用不上。   jmail是一个第三方邮件操作组件,通常位于web服务器端,和站点程序紧密配合来接收及提交邮件到邮件服务器的控件,让网站拥有发送邮件既接收邮件的功能   与此相同的还有CDONTS.NewMail,Persits.MailSender,IISmail.Iismail等等,他们唯一区别就是jmail只需要注册一个dll组件即可被调用,而其他则需要在iis上设置发布smtp服务器   (1)Body(信件正文) : 字符串   如:JMail.Body = "这里可以是用户填写的表单内容,可以取自Form。"   (2)Charset(字符集,缺省为"US-ASCII") : 字符串   如:JMail.Charset = "US-ASCII"   (3)ContentTransferEncoding : 字符串   指定内容传送时的编码方式,缺省是"Quoted-Printable"   如:JMail.ContentTransferEncoding = "base64"   (4)ContentType(信件的contentype. 缺省是"text/plain") : 字符串   如果你以HTML格式发送邮件, 改为"text/html"即可。   如:JMail.ContentType = "text/html"   (5)Encoding : 字符串   设置附件编码方式(缺省是"base64)。 可以选择使用的是"base64", "uuencode" or "quoted-printable" 如:JMail.Encoding = "base64"   (6)Log(Jmail创建的日志,前提loging属性设置为true,见下面) : 字符串   如:使用Response.Write( JMail.Log )语句列出日志信息。   (7)Logging(是否使用日志) : 布尔型   如:JMail.Logging = true   (8)Recipients : 字符串   只读属性,返回所有收件人   如:Response.Write( "" + JMail.Recipients + "" );   (9)ReplyTo(指定别的回信地址) : 字符串   如:JMail.ReplyTo = "qiao198@hotmail.com"   (10)Sender( 发件人的邮件地址) : 字符串   如:JMail.Sender = "qiao198@21cn.com"   (11)SenderName(发件人的姓名) : 字符串   如:JMail.SenderName = "一克"   (12)ServerAddress(邮件服务器的地址) : 字符串   你可以指定多个服务器,用分号点开。可以指定端口号。   如果serverAddress保持空白,JMail会尝试远程邮件服务器,然后直接发送到服务器上去。   如:JMail.ServerAddress = "mail.21cn.net.cn"   (13)Subject(设定邮件的标题,可以取自Form。):字符串   如:JMail.Subject = "客户反馈表单"   (14)添加文件附件到邮件   如:JMail.AddAttachment( "c:anyfile.zip" )   (15)AddCustomAttachment( FileName, Data )   添加自定义附件.   如:JMail.AddCustomAttachment( "anyfile.txt", "Contents of file" );   (16)AddHeader( Header, Value )   添加用户定义的信件标头。   如:JMail.AddHeader( "Originating-IP","192.158.1.10" );   (17)AddRecipient(收件人):字符串   如:JMail.AddRecipient( "qiao198@hotmail.com" );   (18)AddRecipientBCC( Email ),密件收件人:   如:JMail.AddRecipientBCC( "qiao198@hotmail.com" );   (19)AddRecipientCC( Email ) ,抄送收件人:   如:JMail.AddRecipientCC( "" )   (20)AddURLAttachment( URL, 文档名)   下载并添加一个来自url的附件. 第二个参数"文档名", 用来指定信件收到后的文件名。   如:JMail.AddURLAttachment( "http://www.chinabs.net/jmail.zip", "jmail" )   (21)AppendBodyFromFile( 文件名) ,将文件作为信件正文:   如:JMail.AppendBodyFromFile( "c:anyfile.txt" )   (22)AppendText( Text )   追加信件的正文内容,比如增加问候语或者其它信息。   如:JMail.AppendText( "欢迎访问本站!" )   (23)Close() ,强制JMail关闭缓冲的与邮件服务器的连接:   如:JMail.Close()   (24)发送【调用格式:objJMail.Send(SMTPServerAddress[:Port])】   例:JMail.Send("smtp.163.com")   Jmail具有以下特点:   (1)可以发送附件;   (2)详细日志能力,便于你查看问题所在;   (3)设置邮件发送的优先级;   (4)支持多种格式的邮件发送,比如说以HTML或者TXT的方式发送邮件。这是个免费的组件。   (5)密件发送/(CC)抄送/紧急信件发送能力;   (6)最关键的就是--免费的组件,不必花钱,所以非常值得使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值