ASP和ASP.NET发送邮件笔记

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

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

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

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

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

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

        try
        { 
            using (MailMessage msg = new MailMessage(fromEmail, toEmail, emailSubject, emailBody))
            {
                msg.IsBodyHtml = true;  //设置邮件内容是否支持html格式
                msg.To.Add("[email protected]");    //追加多个收件人邮箱,实现群发
                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") = "[email protected]"‘ 发送邮件的邮箱地址 objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*****" 邮箱密码 objCDO.Fields.Update Set objMail.Configuration = objCDO objMail.From = "[email protected]" 发件人,这里和上面的发送邮件地址保持一致 objMail.Subject = "Email Subject" 邮件标题 objMail.To = "[email protected]" 收件人 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 = "[email protected]"  ‘邮箱登陆用户名
    JMail.MailServerPassword = "*************"  ‘邮箱密码
    JMail.ContentType = "text/html" 
    JMail.Priority = 1 
    JMail.From = "[email protected]"  ‘发件人邮件地址
    JMail.FromName = "xmTan"      ‘发件人姓名,可以和发件人邮件地址一样
    JMail.AddRecipient "[email protected]"  ‘收件人邮件地址
    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  ‘调用方法,发送邮件

%>

  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。