ASP和ASP.NET发送邮件笔记

    这两天因公司网站邮件发不出去,然后研究了在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  '调用方法,发送邮件

%>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 16.04上安装Webmin控制面板和模块

Webmin是一个Web界面,允许您通过浏览器管理配置文件和重新加载程序,而无需SSH连接到您的Linode。它是cPanel或Plesk等管理面板的流行替代品...

49030
来自专栏张善友的专栏

修改终端服务器的最大连接数

1.明确终端服务的2种模式  ----Windows 2000终端服务有2种运行模式: 远程管理模式和应用程序服务器模式。远程管理 模式允许系统管理员远程管理服...

24080
来自专栏北京马哥教育

批量管理自动化运维100台小规模服务器

---- 目录 1.脚本背景介绍 2.脚本技术需求分析 2.1 SSH免登陆认证 2.2 Expect实现key分发 2.2 PSSH家族命...

2.6K150
来自专栏云计算教程系列

如何在Debian 9上为用户目录设置vsftpd

FTP是文件传输协议的缩写,是一种曾经广泛用于在客户端和服务器之间移动文件的网络协议。它已被更快,更安全,更方便的文件传输方式所取代。很多休闲互联网用户希望直接...

44640
来自专栏Java后端技术栈

一步步带你了解前后端分离利器之JWT

HTTP 是无状态协议,它不对之前发送过的请求和响应的状态进行管理。也就是说,无法根据之前的状态进行本次的请求处理。假设要求登录认证的 Web 页面本身无法进行...

12220
来自专栏Objective-C

iOS-将项目上传到 Git.OSChina 上,创建自己的私有项目

34660
来自专栏我的博客

phpmailer发送邮件的详细说明

1、首先去下载phpmailer【phpmailer】 2、有找一个支持smtp的邮箱(我用的是qq邮箱) 3、把phpmailer解压到你web目录 4、书写...

43370
来自专栏云计算教程系列

在CentOS 7上安装Webmin

Webmin是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数...

49430
来自专栏IT可乐

邮件实现详解(二)------手工体验smtp和pop3协议

  上篇博客我们简单介绍了电子邮件的发送和接收过程,对参与其中的邮件服务器,邮件客户端软件,邮件传输协议也有简单的介绍。我们知道电子邮件需要在邮件客户端和邮件服...

466100
来自专栏有困难要上,没有困难创造困难也要上!

Redis实现类似同步方法调用的功能(一)

380110

扫码关注云+社区

领取腾讯云代金券