专栏首页谈补锅ASP和ASP.NET发送邮件笔记

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 条评论
登录 后参与评论

相关文章

  • iOS之ProtocolBuffer搭建和示例demo

         这次搭建iOS的ProtocolBuffer编译器和把*.proto源文件编译成*.pbobjc.h 和 *.pbobjc.m文件时,碰到不少问题!

    tandaxia
  • Swift学习笔记

      swift3.0中文翻译学习网站:http://www.swift51.com/swift3.0/

    tandaxia
  • JS数据结构第五篇 --- 二叉树和二叉查找树

    从逻辑结构角度来看,前面说的链表、栈、队列都是线性结构;而今天要了解的“二叉树”属于树形结构。

    tandaxia
  • 朋友去面试Python工程师,又带回来几道基础题,Python面试题No10

    两者用法相同,不同的是 range 返回的结果是一个列表,而 xrange 的结果是一个生成器,前者是 直接开辟一块内存空间来保存列表,后者是边循环边使用,只...

    梦想橡皮擦
  • 边缘云计算典型应用场景

    去年底,中国电子技术标准化研究院、阿里云等单位共同编制并发布了一份《边缘云计算技术与标准化白皮书》,定义了边缘云计算的概念和标准等,白皮书篇幅略长,边缘计算社区...

    边缘计算
  • JFinal项目发送邮件——jfinal-mail-plugin

    JFianl框架: JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩...

    二十三年蝉
  • Codeforces Round #633 (Div. 2) B Sorted Adjacent Differences(直观感知+排序插放)

    You have array of nn numbers a1,a2,…,ana1,a2,…,an.

    glm233
  • 如何在CentOS 7上使用Linux审计系统

    在Linux审核系统可以帮助系统管理员创建一个审计跟踪,日志服务器上的每一个动作。我们可以通过检查审计日志文件来跟踪与安全相关的事件,将事件记录在日志文件中,以...

    何处惹尘埃
  • CV学习笔记(二十六):Python Base64 格式图片上传

    通常我们在使用服务的时候,数据从我们的设备传输到服务器,往往会有两种方式:一是直接传输文件,但这种情况受网络情况影响较大,文件可能传不过去,并且文件直接在网路上...

    云时之间
  • 企业高效的经营管理需要清晰的管理指标

    所谓的管理指标就是企业经营和管理活动所需要达成的经营成果衡量标准。通俗地讲就是一个企业为了实现自己的经营结果而需要组织成员,包括每个岗位的员工、每个部门、每个业...

    明悦数据

扫码关注云+社区

领取腾讯云代金券