首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASP和ASP.NET发送邮件笔记

ASP和ASP.NET发送邮件笔记

作者头像
tandaxia
发布2018-09-27 12:28:33
7.2K0
发布2018-09-27 12:28:33
举报
文章被收录于专栏:谈补锅谈补锅

    这两天因公司网站邮件发不出去,然后研究了在asp网站发送邮件和在asp.net网站发送邮件的代码,把碰到的问题这里记录一下。

1、先说在asp.net中发送邮件吧,

刚开始只有126邮箱可以发出邮件,然后其他163、新浪等发不出去,后来郁闷了很久才知道邮箱的smtp和pop3服务默认是不开通的,需要去手动开通才可以发送邮件。比如说新浪邮箱开通smtp服务截图如下:

其他邮箱也类似,然后才能实现发送邮件的功能,发送邮件代码如下:

 /// <summary>
    /// C#发送邮件
    /// </summary>
    public void ShowSendEmail()
    {
        string fromEmail = "xmTan@126.com";     //发件人邮箱地址
        string emailSMTPHost = "smtp.126.com";  //邮箱SMTP服务器,用来发送邮件
        string emailSubject = "Email Subject";  //邮件主题
        string emailBody = "<h1>Email Content</h1><h3>哈哈哈,发送邮件OK了!!!^_^</h3>"; //邮件内容
        string toEmail = "5185185185@qq.com";   //要发送对象的邮箱地址

        string emailName = fromEmail;  //登陆邮箱的用户名,可以和发件人邮箱地址一样
        string emailPwd = "********";  //登陆邮箱的密码

        try
        { 
            using (MailMessage msg = new MailMessage(fromEmail, toEmail, emailSubject, emailBody))
            {
                msg.IsBodyHtml = true;  //设置邮件内容是否支持html格式
                msg.To.Add("zhangMao@sina.com");    //追加多个收件人邮箱,实现群发
                msg.Priority = MailPriority.High;   //发送邮件的优先等级

                SmtpClient mailClient = new SmtpClient(emailSMTPHost);
                mailClient.UseDefaultCredentials = false;  //设置是否随请求一起发送
                mailClient.Credentials = new System.Net.NetworkCredential(emailName, emailPwd);

                //是否使用安全套接字层 (SSL) 加密连接. SmtpClient 使用 SSL,则为 true;否则为 false。默认值为 false。
                mailClient.EnableSsl = true; 

                mailClient.Send(msg); //调用发送邮件方法
            }
        }
        catch (Exception ex) 
        { 
            //发送失败:ex.Message;
            return;
        }

        //发送成功
    }

2、然后使用asp来发送邮件,现经测试有两种方式可以发送邮件成功

   第一种方式代码如下:

<%
'定义发送邮件方法
function showSendEmail
    Set objMail = Server.CreateObject("CDO.Message")  
    Set objCDO = Server.CreateObject("CDO.Configuration")         
    objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") =2        
    objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver")= "smtp.126.com"  '邮件服务器      
    objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25        ' 邮件服务器默认端口
    objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10  '超时设置  
    objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1        
    objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xmTan@126.com"' 发送邮件的邮箱地址        
    objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*****" '邮箱密码        
    objCDO.Fields.Update         
    Set objMail.Configuration = objCDO                    
    objMail.From = "xmTan@126.com"      '发件人,这里和上面的发送邮件地址保持一致        
    objMail.Subject = "Email Subject"   '邮件标题        
    objMail.To = "51851851851@qq.com"    '收件人        
    objMail.HtmlBody = "哈喽,测试邮件,最近可好?"  '发送内容。        
    objMail.Send
    Set objMail = Nothing 
    Set objCDOSYSCon = Nothing
end function

showSendEmail  '调用方法,发送邮件

%>

 第二种调用JMail组件来发送邮件,调用这个组件来发送邮件时,

要注意一点,必须安装JMail组件后,才能发送邮件成功(之前一直没安装,发送总是报缺少对象错误)

JMail组件下载路径有:http://download.csdn.net/detail/tandaxia/8598007

<%

'定义发送邮件方法
Sub showJmail 
    On Error Resume Next 
    Dim JMail 
    Set JMail = Server.CreateObject("JMail.Message") 
    JMail.silent=true 
    JMail.Logging = True 
    JMail.Charset = "gb2312" 
    JMail.MailServerUserName = "xmTan@126.com"  '邮箱登陆用户名
    JMail.MailServerPassword = "*************"  '邮箱密码
    JMail.ContentType = "text/html" 
    JMail.Priority = 1 
    JMail.From = "xmTan@126.com"  '发件人邮件地址
    JMail.FromName = "xmTan"      '发件人姓名,可以和发件人邮件地址一样
    JMail.AddRecipient "51851851851@qq.com"  '收件人邮件地址
    JMail.Subject = "Email Subject"          '邮件主题
    JMail.Body = "<h1>Email Content </h1>哈喽,发送成功了 ^_^"  '邮件内容
    JMail.Send ("smtp.126.com")    '邮箱SMTP服务器
    Set JMail = Nothing 
    SendMail = "OK" 
    If Err Then SendMail = Err.Description 

    Response.Write("<h1>发送结果:"&SendMail&"</h1>")
End Sub 

showJmail  '调用方法,发送邮件

%>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-04-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档