这两天因公司网站邮件发不出去,然后研究了在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. redis学习之三配置文件redis.conf 的含义

    摘自http://www.runoob.com/redis/redis-conf.html 安装redis之后的第一件事,我就开始配置密码,结果总是不生效,而我居然还没想到原因.今天突然用命令行设置了 ...

  2. caffe pytho接口

    一:搭建Caffe 1.下载happynear的Caffe源码https://www.github.com/happynear/caffe-windows,第三方库3rdparty文件http://p ...

  3. linux useradd 命令基本用法

    在 Linux 中 useradd 是个很基本的命令,但是使用起来却很不直观.以至于在 Ubuntu 中居然添加了一个 adduser 命令来简化添加用户的操作.本文主要描述笔者在学习使用 usera ...

  4. C语言学习012:将代码文件分成多个文件

    如果将所有的代码都写到一个文件中,当对于小项目来说不会有什么问题,但是当它一个很大的工程的时候,如果将所有代码都写到一个文件中,不但开发起来很困难,维护更是头疼,所以我们应该将代码按不同的功能分别建立 ...

  5. 介绍开源的.net通信框架NetworkComms框架 源码分析(九) IPConnection

    原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  许可是 ...

  6. 点/边 双连通分量---Tarjan算法

    运用Tarjan算法,求解图的点/边双连通分量. 1.点双连通分量[块] 割点可以存在多个块中,每个块包含当前节点u,分量以边的形式输出比较有意义. typedef struct{ //栈结点结构 保 ...

  7. Winform 导入导出方法

    导出时:引用 using Excel = Microsoft.Office.Interop.Excel; #region 读取excel //打开方法 public DataTable Excelto ...

  8. 设置MySQL服务自动运行

    一般情况下,MySQL安装以后是自动运行的,不知道我这台机器是什么原因,MySQL不能自动运行,每次开机后都要手动运行mysqld.exe,比较麻烦,于是用以下方法将MySQL自动启动: 1. 运行c ...

  9. 动易CMS之标签管理

    一.如何添加一个标签 1.系统设置->模板标签管理->添加标签 2.输入标签名称,根据需要选择数据设置: sql语句则选择[系统数据库SQL查询] 3.添加参数 4.系统可以根据设置的条件 ...

  10. 泛函编程(26)-泛函数据类型-Monad-Applicative Functor Traversal

    前面我们讨论了Applicative.Applicative 就是某种Functor,因为我们可以用map2来实现map,所以Applicative可以map,就是Functor,叫做Applicat ...