采用ASP.NET发送电子邮件(采用SMTP验证及SSL)





我们可以采用ASP.NET的System.Net.Mail来访问Smtp服务器发送邮件,代码如下:

            MailAddress from = new MailAddress(@"hen.hao.hen.qiang.da@xxx.com");
            MailAddress to = new MailAddress(@"hen.huang.hen.bao.li@xxx.com");
            MailMessage message = new MailMessage(from, to);
           
            message.Body = "This is a test e-mail message sent by asp.net. ";
            message.BodyEncoding = System.Text.Encoding.UTF8;
            message.Subject = "test message" + someArrows;
            message.SubjectEncoding = System.Text.Encoding.UTF8;

            SmtpClient client = new SmtpClient(@"smtp.mailserver.domainname");
            client.Port = 25;
            client.Send(message);




但是我们知道现在多数SMTP是需要用户名和密码来验证的,否则大家就可以拿着上面的代码发送各种办证和治疗性病的小广告了,所以我们需要下面的代码:

            MailAddress from = new MailAddress(@"hen.hao.hen.qiang.da@xxx.com");
            MailAddress to = new MailAddress(@"hen.huang.hen.bao.li@xxx.com");
            MailMessage message = new MailMessage(from, to);
           
            message.Body = "This is a test e-mail message sent by asp.net with smtp authentication ";
            message.BodyEncoding = System.Text.Encoding.UTF8;
            message.Subject = "test message" + someArrows;
            message.SubjectEncoding = System.Text.Encoding.UTF8;

            SmtpClient client = new SmtpClient(@"smtp.mailserver.domainname");
            client.Port = 25;

            //here it comes!!!
            client.UseDefaultCredentials = false;
            NetworkCredential basicAuthenticationInfo = new NetworkCredential(@"hen.sha.hen.tian.zhen", "zhen.de.hen.sha.hen.tian.zhen");
            client.Credentials = basicAuthenticationInfo;

            client.Send(message);




现在我们可以不怕smtp验证了,不过现在gmail很流行,大家也许很像通过gmail来发邮件,但是gmail是支持ssl的,该如何发送呢,用下面的代码就可以:

            MailAddress from = new MailAddress(@"hen.hao.hen.qiang.da@xxx.com");
            MailAddress to = new MailAddress(@"hen.huang.hen.bao.li@xxx.com");
            MailMessage message = new MailMessage(from, to);
           
            message.Body = "This is a test e-mail message sent by asp.net with smtp authentication and ssl";
            message.BodyEncoding = System.Text.Encoding.UTF8;
            message.Subject = "test message" + someArrows;
            message.SubjectEncoding = System.Text.Encoding.UTF8;

            SmtpClient client = new SmtpClient(@"smtp.gmail.com");
            //here it goes!!!
            //client.Port = 25;
            client.Port = 587; //gmail ssl port
            client.EnableSsl = true;

            client.UseDefaultCredentials = false;
            NetworkCredential basicAuthenticationInfo = new NetworkCredential(@"hen.sha.hen.tian.zhen", "zhen.de.hen.sha.hen.tian.zhen");
            client.Credentials = basicAuthenticationInfo;

            client.Send(message);






















 
//初始化邮件类 void InitEmail(C01waSendMail* m_globalEmail,String sendermail,String sender,String senderpwd,String srv,int port = 25,bool bSsl = false) { m_globalEmail->m_Auth = CPJNSMTPConnection::AuthenticationMethod::AUTH_AUTO; m_globalEmail->m_bAutoDial = true; m_globalEmail->m_bSSL = bSsl; m_globalEmail->m_sUsername = sender.c_str(); m_globalEmail->m_sAddress = sendermail.c_str(); m_globalEmail->m_sPassword = senderpwd.c_str(); m_globalEmail->m_sHost = srv.c_str(); m_globalEmail->m_nPort = port; m_globalEmail->m_sEncodingFriendly = _T("Chinese Simplified (GB2312)"); m_globalEmail->m_sEncodingCharset = _T("gb2312"); m_globalEmail->m_bMime = 1; m_globalEmail->m_bHTML = 1; m_globalEmail->m_Priority = CPJNSMTPMessage::PRIORITY::NormalPriority; m_globalEmail->m_bDSN = FALSE; m_globalEmail->m_bDSNSuccess = FALSE; m_globalEmail->m_bDSNFailure = FALSE; m_globalEmail->m_bDSNDelay = FALSE; m_globalEmail->m_bDSNHeaders = FALSE; m_globalEmail->m_bDNSLookup = FALSE; } //发送邮件 void SendEmail(const char* recvemail,const char* subject,const char* body,const char * sCC=NULL,const char * bCC = NULL,const char * attach = NULL) { //初始化邮箱 //注意释放内存 C01waSendMail *m_globalEmail = new C01waSendMail; if(strlen(m_con1.m_eamil)>0&&strlen(m_con1.m_pwd)&&strlen(m_con1.m_smtpsrv)&&m_con1.port>0) { char * p = strdup(m_con1.m_eamil); char * pp = strstr(p,"@"); if(pp>0) pp[0] = '\0'; InitEmail(m_globalEmail,m_con1.m_eamil,p,m_con1.m_pwd,m_con1.m_smtpsrv,m_con1.port,m_con1.ssl); free(p); if(subject>0) m_globalEmail->m_sSubject.Format("%s",subject); if(sCC>0) m_globalEmail->m_sCC.Format("%s",sCC); if(bCC>0) m_globalEmail->m_sBCC.Format("%s",bCC); if(body>0) m_globalEmail->m_sBody.Format("%s",body); if(attach>0) m_globalEmail->m_sFile.Format("%s",attach); if(recvemail>0) m_globalEmail->m_sTo.Format("%s",recvemail); m_globalEmail->SendEmail(); } }
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

socratescli

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值