using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net.Mail;
public partial class testSendMail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string strFrom = "xiaoxueli707325@126.com";
string strTo = "shirlly.liao@163.com";
string strSubject = "webtest";
string strBody = "测试";
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(strFrom, strTo, strSubject, strBody);
message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;
SendSMTPEMail("smtp.126.com", "xiaoxueli707325@126.com", "111111", message);
}
public void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, MailMessage message)
{
try
{
SmtpClient client = new SmtpClient(strSmtpServer);
client.UseDefaultCredentials = true;
client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Send(message);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
}
//发送邮件的通用方法整理
public void SendEmail(string subject, string body, params string[] tos)
{
string host = _commonAppService.GetSettingValue("Common_EmailHost");
string fromName = _commonAppService.GetSettingValue("Common_EmailFromName");
string from = _commonAppService.GetSettingValue("Common_NoreplyEmailUserName");
string password = _commonAppService.GetSettingValue("Common_NoreplyEmailPassword");
MailMessage message = new MailMessage();
message.From = new MailAddress(from, fromName);
foreach (var to in tos)
{
message.To.Add(to);
}
message.Subject = subject;
message.Body = body;
message.IsBodyHtml = true;
SmtpClient smtpClient = new SmtpClient();
smtpClient.UseDefaultCredentials = true;
smtpClient.Credentials = new NetworkCredential(from, password);
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.Host = host;
//如果是发送邮箱是gmail要加上这个代码否则邮件无法发送成功
if (smtpClient.Host == "smtp.gmail.com")
{
smtpClient.EnableSsl = true;
smtpClient.Port = 587;
}
try
{
smtpClient.Send(message);
}
catch
{
AssertHelper.NoPass(true, R.Package, R.Keys.K邮件_错误信息_邮件发送失败);
}
}
注意:
1、确保strFrom的值和strSmtpServer的值一致,否之会报Send Error:不允许使用邮箱名称。 服务器响应为: You are not authorized to send mail, authentication is required。的错误
2、确保用于发送邮件的邮箱不是刚注册的邮箱,而要用有提供SMTP服务的邮箱的帐号和密码,否则会报邮箱不可以用的错误
引用
为何新申请的邮箱不能用客户端?
目前免费邮箱新注册的用户不支持直接开通smtp、pop3的服务,之前已开通客户端功能的老用户不受影响。如果需要使用该功能,您可开通增值服务邮箱伴侣或随身邮 ,即可同时获取poo功能。
----------------
新注册的用户付费才能使用...
3、下面两句的书写的顺序不能颠倒
client.UseDefaultCredentials = true;
client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
否则会报这样的错误
引用
Send Error:不允许使用邮箱名称。 服务器响应为: You are not authorized to send mail, authentication is required。就是说没有通过登录认证
4、注意126的域名是
smtp.126.com
163的域名是
smtp.163.com
分享到:
相关推荐
273 实例190 获取窗口文本 273 实例191 判断文件是否正在被使用 274 实例192 在程序中调用.HLP文件 275 实例193 C#中实现文件拖放 276 实例194 文件比较 276 第7章 操作系统与Windows...
《C#开发实例大全(基础卷)》筛选、汇集了C#开发从基础知识到高级应用各个层面约600个实例及源代码,每个实例都按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析解读。全书分6篇共25章,主要...
从头做成一个ASP.NET实例讲解(c#) 开发工具vs2017 压缩文件包含一个讲解Excel文件,还有实例代码, 主要实现登录Demo 包括:引用外部css、外部js,c#判断页面控件值,c#动态改变样式,js动态添加改变样式,js控制...
C#调用WebService实例和开发(wsdl).rar
该系统使用ASP.NET(C#语言)和ADO.NET技术开发, 实现了网站新闻的动态管理,使得对信息的管理更加及时、高效,提高了工作效率,具有一般新闻系统的功能,主要包括前台新闻查看区和后台管理区,可为学校各部门发布新闻...
1、相对数据库路径,通过db的数据库连接文件可用直接连接相对路径数据库,所以本人案例支持外部IIS的支持asp.net的动态服务器空间; 2、CRUD标准化处理代码,等于是通用方法,移植到任何程序,直接调用dbApp类的增删...
(4)使用Spring.net实现Ioc; (5)Romoting; (6)利用Ioc在不动一行代码的情 况下实现Remoting。为了更好的理解文中的内容,最好顺序阅读。 作为一个应用系统,代码复用至关重要。如果在你的设计中,类与类存在...
使用FtpWebRequest等.net自带的类编写的ftp上传类,编写好的类可以由外部实例调用.
gitlab-ci.net是GitLab Ci API的.net其余客户端实现,没有外部依赖项。 用法 gitlab-ci.net是REST api的包装。 请参阅或快速入门,为 创建一个GitLabCiClient实例: var client = GitLabCiClient . Connect ( " ...
《.NET深入体验与实战精要》作者身为从事.NET一线开发的资深开发专家,常年耕耘技术博客,惠及无数.NET新知。此次将长期的思考、感悟,多年的系统开发、设计和团队管理经验,以及深入分析众多项目实战的宝贵成果...
实例229 C#中实现文件拖放 317 实例230 文件比较 318 实例231 获取文件夹中的图标资源 319 实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例...
实例229 C#中实现文件拖放 317 实例230 文件比较 318 实例231 获取文件夹中的图标资源 319 实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例...
实例229 C#中实现文件拖放 317 实例230 文件比较 318 实例231 获取文件夹中的图标资源 319 实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例...
Whistle是一个辅助C#库,用于从.NET进程中启动外部可执行文件并返回该可执行文件产生的任何输出。 安装 Whistle在处可用,并且可以使用VisualStudio NuGet程序包管理器或通过NuGet命令行作为程序包安装: 安装包...
第2篇创建型模式介绍通过将实例化职责委托他方对象的办法,隔离客户程序与具体类型实例化的依赖关系,保证客户程序(或者外部系统)获得期望具体类型实例的、同时不必发生直接的引用;第3篇结构型模式的重点在于如何...