C#使用System.Net.Mail类实现邮件发送
作者:梦想天空 发布时间:2022-04-26 01:38:21
标签:C#,System,Net,Mail,类,邮件,发送
有些 SMTP 服务器要求在代表客户端发送电子邮件前验证客户端的身份。当此 SmtpClient 对象应该使用当前登录用户的默认凭据进行身份验证(如果服务器要求)时,请将此属性设置为 true。对于客户端应用程序,这是在大多数情况下都需要的行为。也可以使用应用程序和计算机配置文件指定凭据信息。有关更多信息,请参见 <mailSettings> 元素(网络设置)。
如果 UseDefaultCredentials 属性设置为 false,则连接到服务器时会将 Credentials 属性中设置的值用作凭据。如果 UseDefaultCredentials 属性设置为 false 并且尚未设置 Credentials 属性,则将邮件以匿名方式发送到服务器。UseDefaultCredentials 的默认值为false。
如果提供用于基本身份验证的凭据,则凭据将以明文形式发送到服务器。这可能会产生安全问题,因为凭据可以被他人看见从而加以利用。但是向163的邮箱发送邮件是必须要带上发送者的凭据信息,否则邮件是发送不出去的。
SmtpClient也可以这样建立:SmtpClient client=new SmtpClient(smtp_server)
,因为邮件发送服务器的默认端口是25。
1、QQ邮箱向163邮箱发送邮件
private static void TimeEvent(object source, ElapsedEventArgs e)
{
string smtp_server="smtp.qq.com";
int port = 25;
string mail_from = "***from_mail_username***@qq.com";
string sender = "***from_mail_username***";
string mail_to = "***to_mail_username***@163.com";
string receiver = "***to_mail_username***@";
string subject = "Title Test"
string body = "Content Test";
try
{
SendEmail(smtp_server, port, mail_from, sender, mail_to, receiver, subject, body);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public static void SendEmail(string smtp_server, int port, string mail_from, string sender, string mail_to, string receiver, string subject, string body)
{
MailAddress from = new MailAddress(mail_from, sender);
MailAddress to = new MailAddress(mail_to, receiver);
MailMessage message = new MailMessage(from, to);
message.BodyEncoding = Encoding.UTF8;
message.IsBodyHtml = true;
message.Subject = subject;
message.Body = body;
SmtpClient client = new SmtpClient(smtp_server, port);
client.Credentials = new NetworkCredential("***from_mail_username***@qq.com", "***pwd***");
client.Send(message);
}
2、163邮箱向163邮箱发送邮件
private static void TimeEvent(object source, ElapsedEventArgs e)
{
string smtp_server="smtp.163.com";
int port = 25;
string mail_from = "***from_mail_username***@163.com";
string sender = "***from_mail_username***";
string mail_to = "***to_mail_username***@163.com";
string receiver = "***to_mail_username***";
string subject = "Title Test"
string body = "Content Test";
try
{
SendEmail(smtp_server, port, mail_from, sender, mail_to, receiver, subject, body);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public static void SendEmail(string smtp_server, int port, string mail_from, string sender, string mail_to, string receiver, string subject, string body)
{
MailAddress from = new MailAddress(mail_from, sender);
MailAddress to = new MailAddress(mail_to, receiver);
MailMessage message = new MailMessage(from, to);
message.BodyEncoding = Encoding.UTF8;
message.IsBodyHtml = true;
message.Subject = subject;
message.Body = body;
SmtpClient client = new SmtpClient(smtp_server);
client.Credentials = new NetworkCredential("***from_mail_username***@163.com", "***pwd***");
client.Send(message);
}
3、163邮箱向QQ邮箱发送邮件
private static void TimeEvent(object source, ElapsedEventArgs e)
{
string smtp_server="smtp.163.com";
int port = 25;
string mail_from = "***from_mail_username***@163.com";
string sender = "***from_mail_username***";
string mail_to = "***to_mail_username***@qq.com";
string receiver = "***to_mail_username***";
string subject = "Title Test"
string body = "Content Test";
try
{
SendEmail(smtp_server, port, mail_from, sender, mail_to, receiver, subject, body);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public static void SendEmail(string smtp_server, int port, string mail_from, string sender, string mail_to, string receiver, string subject, string body)
{
MailAddress from = new MailAddress(mail_from, sender);
MailAddress to = new MailAddress(mail_to, receiver);
MailMessage message = new MailMessage(from, to);
message.BodyEncoding = Encoding.UTF8;
message.IsBodyHtml = true;
message.Subject = subject;
message.Body = body;
SmtpClient client = new SmtpClient(smtp_server);
client.Credentials = new NetworkCredential("***from_mail_username***@163.com", "***pwd***");
client.Send(message);
}
4、QQ邮箱向QQ邮箱发送邮件
private static void TimeEvent(object source, ElapsedEventArgs e)
{
string smtp_server="smtp.qq.com";
int port = 25;
string mail_from = "***from_mail_username***@qq.com";
string sender = "***from_mail_username***";
string mail_to = "***to_mail_username***@qq.com";
string receiver = "***to_mail_username***";
string subject = "Title Test"
string body = "Content Test";
try
{
SendEmail(smtp_server, port, mail_from, sender, mail_to, receiver, subject, body);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
public static void SendEmail(string smtp_server, int port, string mail_from, string sender, string mail_to, string receiver, string subject, string body)
{
MailAddress from = new MailAddress(mail_from, sender);
MailAddress to = new MailAddress(mail_to, receiver);
MailMessage message = new MailMessage(from, to);
message.BodyEncoding = Encoding.UTF8;
message.IsBodyHtml = true;
message.Subject = subject;
message.Body = body;
SmtpClient client = new SmtpClient(smtp_server);
client.Credentials = new NetworkCredential("***from_mail_username***@qq.com", "***pwd***");
client.Send(message);
}
来源:https://www.cnblogs.com/lhb25/archive/2008/10/30/1323042.html


猜你喜欢
- 本文实例为大家分享了Java NIO实战之多人聊天室的具体代码,供大家参考,具体内容如下NIO服务端public class NioServ
- 我们都知道可以用爬虫来找寻一些想要的数据,除了可以使用python进行操作,我们最近学习的java同样也支持爬虫的运行,本篇小编就教大家用j
- 本文实例讲述了Java Web实现添加定时任务的方法。分享给大家供大家参考,具体如下:定时任务时间控制类/** * 定时任务时间控制 * *
- CLR要求每一个类型都最终从object类型派生,如下: class Typer {} === class Typer :object {}
- 前言在之前 LiveData 源码浅析的博客中提到了 ViewModel 组件,当时对 ViewModel 的解释是 “
- Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册
- Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现
- response.setHeader设置下载文件名无效response.setContentType("application/o
- 目录一、什么是 RUNNABLE?二、与传统的ready状态的区别三、与传统的running状态的区别四、当I/O阻塞时五、如何看待RUNN
- 本文实例讲述了C#简单遍历指定文件夹中所有文件的方法。分享给大家供大家参考,具体如下:C#遍历指定文件夹中的所有文件:DirectoryIn
- 大家都知道由于性能要求,Android要求只能在UI线程中更新UI,要想在其他线程中更新UI,我大致总结了4种方式,欢迎补充纠正:使用Han
- 如何下载并配置JDK 15进入官网下载JDK 15。官网地址:https://www.oracle.com/index.html脚本之家下载
- 1、什么是GOCW 为了解决在Csharp下编写OpenCV程序的问题,我做过比
- Integer获取第一位和最后一位并截取场景获取 5,10,15,25,30; 判断尾数为5的进入判断public static void
- 目录 * 仓库的配置1、 下载sonatype Nexus来搭建 * 2 安装nexus服务3、创建 * 仓库4、配置 * 信息中央仓库的配置三个仓
- 1. 线程转储简介线程转储(Thread Dump)就是JVM中所有线程状态信息的一次快照。线程转储一般使用文本格式, 可以将其保存到文本文
- 概念尽量使用合成/聚合,而不是使用继承实现复用。所谓的合成/聚合是指一个对象里持有另外一个类的对象,通过调用这些对象的方法得到复用已有功能的
- 一个发送验证码的需求:包括限制文本框输入长度和只允许输入数字按惯例 先上图:class MyBody extends StatefulWid
- gradle下载慢问题解决方法下载之后自行安装 ps:就是手动更新。官网地址和gradle各版本下载地址:官网:http://gradle.
- 前言本文给你提供在Spring Boot 应用程序中编写好的单元测试的机制,并且深入技术细节。我们将带你学习如何以可测试的方式创建Sprin