这两天因公司网站邮件发不出去,然后研究了在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") =
objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver")= "smtp.126.com" '邮件服务器
objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = ' 邮件服务器默认端口
objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = '超时设置
objCDO.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") =
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 '调用方法,发送邮件 %>

  

ASP和ASP.NET发送邮件笔记的更多相关文章

  1. Asp.Net Core WebApi学习笔记(四)-- Middleware

    Asp.Net Core WebApi学习笔记(四)-- Middleware 本文记录了Asp.Net管道模型和Asp.Net Core的Middleware模型的对比,并在上一篇的基础上增加Mid ...

  2. ASP.NET Core 2 学习笔记(七)路由

    ASP.NET Core通过路由(Routing)设定,将定义的URL规则找到相对应行为:当使用者Request的URL满足特定规则条件时,则自动对应到相符合的行为处理.从ASP.NET就已经存在的架 ...

  3. ASP.NET Core 2 学习笔记(十三)Swagger

    Swagger也算是行之有年的API文件生成器,只要在API上使用C#的<summary />文件注解标签,就可以产生精美的线上文件,并且对RESTful API有良好的支持.不仅支持生成 ...

  4. ASP.NET Core 2 学习笔记(十二)REST-Like API

    Restful几乎已算是API设计的标准,通过HTTP Method区分新增(Create).查询(Read).修改(Update)和删除(Delete),简称CRUD四种数据存取方式,简约又直接的风 ...

  5. ASP.NET Core 2 学习笔记(十)视图

    ASP.NET Core MVC中的Views是负责网页显示,将数据一并渲染至UI包含HTML.CSS等.并能痛过Razor语法在*.cshtml中写渲染画面的程序逻辑.本篇将介绍ASP.NET Co ...

  6. sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)

    sql server 关于表中只增标识问题   由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...

  7. ASP.NET Core 2 学习笔记(一)开始

    原文:ASP.NET Core 2 学习笔记(一)开始 来势汹汹的.NET Core似乎要取代.NET Framework,ASP.NET也随之发布.NET Core版本.虽然名称沿用ASP.NET, ...

  8. ASP.Net WebForm温故知新学习笔记:二、ViewState与UpdatePanel探秘

    开篇:经历了上一篇<aspx与服务器控件探秘>后,我们了解了aspx和服务器控件背后的故事.这篇我们开始走进WebForm状态保持的一大法宝—ViewState,对其刨根究底一下.然后,再 ...

  9. ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘

    开篇:毫无疑问,ASP.Net WebForm是微软推出的一个跨时代的Web开发模式,它将WinForm开发模式的快捷便利的优点移植到了Web开发上,我们只要学会三步:拖控件→设属性→绑事件,便可以行 ...

  10. 【转载】ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘

    开篇:毫无疑问,ASP.Net WebForm是微软推出的一个跨时代的Web开发模式,它将WinForm开发模式的快捷便利的优点移植到了Web开发上,我们只要学会三步:拖控件→设属性→绑事件,便可以行 ...

随机推荐

  1. tomcat6类加载器与类加载顺序

    tomcat6.0.32 com.dyyx.ShareUtils//返回系统当前时间public static String now(); package com.dyyx;import java.t ...

  2. Azure REST API (2) Azure Storage

    <Windows Azure Platform 系列文章目录> 注意:本文适用于国内由世纪互联运维的Azure China. 本文将会介绍如何使用REST API来直接访问Storage ...

  3. HT for Web的HTML5树组件延迟加载技术实现

    HT for Web的HTML5树组件有延迟加载的功能,这个功能对于那些需要从服务器读取具有层级依赖关系数据时非常有用,需要获取数据的时候再向服务器发起请求,这样可减轻服务器压力,同时也减少了浏览器的 ...

  4. JS魔法堂:被玩坏的innerHTML、innerText、textContent和value属性

    一.前言 由于innerText并非W3C标准属性,因此我们无法在FireFox中使用它(修正:FF45+已经支持innerText属性),一般情况下我们可以使用textContent来代替,但它两者 ...

  5. ASP.NET MVC+EF在服务端分页使用jqGrid以及jquery Datatables的注意事项

    引言: 本人想自己个博客网站出来,技术路线是用ASN.NET MVC5+EF6(Code First)+ZUI+各种Jquery插件,有了这个想法之后就开始选择UI,看了好多bootstrap的模板之 ...

  6. ADB pm 命令

    usage: pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_TER] pm list permission-grou ...

  7. Nancy 学习-进阶部分 继续跨平台

    前面两篇,讲解Nancy的基础,及Nancy自宿主和视图引擎. 现在来学习一些进阶部分. Bootstrapper Bootstrapper 就相当于 asp.net 的Global.asax . 我 ...

  8. C# ~ 从 XML 到 Linq 到 Linq to XML

    .XML 可扩展标记语言 (Extensible Markup Language), 标记 (markup) 是关键部分,是标准通用标记语言 (Standard Generalized Markup ...

  9. cookies

    Cookie[] cookies=request.getCookies(); for(Cookie c:cookies) out.println(c.getValue()+" ") ...

  10. luogg_java学习_01_JAVA基本概述

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! 1.1基础常识 常用的dos命令 dir 列出当前目录 ...