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);
}

到此这篇关于C#使用System.Net.Mail类实现邮件发送的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • asp.net System.Net.Mail 发送邮件

    举例: 复制代码 代码如下: 163.com的邮箱在早期申请的是支持的,后面申请的都是不支持. 21cn.com似乎现在已经放弃了smtp支持,可能只有缴费用户才可以. qq.com的邮箱需要在用户帐户里面设置. 我拿了个sina.com的邮箱进行测试,也需要在后台里面的才可以发送.详细代码如下: 复制代码 代码如下: MailAddress from = new MailAddress("sosuo8@sina.com"); MailAddress to = new MailAddr

  • ASP.NET邮件发送system.Net.Mail案例

    本文实例为大家分享了ASP.NET邮件发送案例,供大家参考,具体内容如下 1.前台页面 SendEmail.aspx 代码 <h2> 发送电子邮件演示 </h2> <table cellpadding="0" cellspacing="0" border="0" style="font-family: 宋体, Arial, Helvetica, sans-serif; font-size: 15px; wi

  • C#使用System.Net.Mail类实现邮件发送

    有些 SMTP 服务器要求在代表客户端发送电子邮件前验证客户端的身份.当此 SmtpClient 对象应该使用当前登录用户的默认凭据进行身份验证(如果服务器要求)时,请将此属性设置为 true.对于客户端应用程序,这是在大多数情况下都需要的行为.也可以使用应用程序和计算机配置文件指定凭据信息.有关更多信息,请参见 <mailSettings> 元素(网络设置). 如果 UseDefaultCredentials 属性设置为 false,则连接到服务器时会将 Credentials 属性中设置的

  • 使用Java自带的mail API实现邮件发送功能全过程

    目录 需求: 以下代码即可发送邮件,以qq邮箱为例 证书生成步骤: 总结 需求: 邮件发送 使用jdk源生API——java.mail实现发邮件功能 (当然也有第三方工具,封装源码也十分抢眼,不做太多分享,可在csdn上自行查找) 以下代码即可发送邮件,以qq邮箱为例 package com.example.demo.emailInfo; import javax.mail.Message; import javax.mail.MessagingException; import javax.m

  • 使用Spring的JAVA Mail支持简化邮件发送功能

    闲来无事,翻看<Spring in Action>,发现Spring集成了对JAVA Mail的支持,有点小激动的看了一遍,嗯,话说真的简单了很多. Spring的邮件发送的核心是MailSender接口,在Spring3.0中提供了一个实现类JavaMailSenderImpl,这个类是发送邮件的核心类.可以通过在配置文件中配置使用,当然也可以自己硬编码到代码中(方便起见,下面的演示代码都是硬编码到代码中,省得配置麻烦). Spring提供的邮件发送不仅支持简单邮件的发送.添加附件,而且还可

  • PHP实现发送邮件的方法(基于简单邮件发送类)

    本文实例讲述了PHP实现发送邮件的方法.分享给大家供大家参考,具体如下: 邮件发送类 <?php /*邮件发送类 *功能:使用smtp服务器发送邮件 */ class smtp { /* 全局变量 */ var $smtp_port; var $time_out; var $host_name; var $log_file; var $relay_host; var $debug; var $auth; var $user; var $pass; var $sock; /* 构造函数 */ fu

  • PHP基于SMTP协议实现邮件发送实例代码

    SMTP协议 当我们使用PHP的第三方库或工具类进行邮件发送的时候,是否想过一个问题: 为什么我们不能自己写php代码实现邮件发现,而要用别人的库呢?php发送邮件到底是如何实现的? 首先我们要了解发送邮件的基本原理,本文基于SMTP协议实现邮件发送 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议.简单来说它定义了一组规则,我们只需要依照这个规则来告诉SMTP服务器,我们要发送邮件的发送人,接收人,内容,主题等信息. 然后SMTP服务器依照这组规则来解析

  • php实现在站点里面添加邮件发送的功能

    下面夏日博客来讲下如何在站点里面添加一个邮件发送的功能. 首先需要下载一个smtp 的 php 邮件发送类,代码如下: <?php class smtp { /* Public Variables */ public $smtp_port; public $time_out; public $host_name; public $log_file; public $relay_host; public $debug; public $auth; public $user; public $pas

  • Java实现带附件的邮件发送功能

    本文实例为大家分享了Java实现邮件发送功能的具体代码,供大家参考,具体内容如下 1.需要导入mail.jar.activation.jar这两个邮件发送的jar包,可在网上搜索并下载 2.需要设置相关邮箱服务器,我用的是QQ邮箱,操作如下所示:开启相关服务,并生产授权码(这个代码中会用到). 代码如下所示: package com.ecg.controller; import java.io.UnsupportedEncodingException; import java.security.

  • Spring Boot实现邮件发送必会的5种姿势

    前言 邮件发送其实是一个非常常见的需求,用户注册,找回密码等地方,都会用到,使用 JavaSE 代码发送邮件,步骤还是挺繁琐的,Spring Boot 中对于邮件发送,提供了相关的自动化配置类,使得邮件发送变得非常容易,本文我们就来一探究竟!看看使用 Spring Boot 发送邮件的 5 中姿势. 邮件基础 我们经常会听到各种各样的邮件协议,比如 SMTP.POP3.IMAP ,那么这些协议有什么作用,有什么区别?我们先来讨论一下这个问题. SMTP 是一个基于 TCP/IP 的应用层协议,江

  • Java实现邮件发送QQ邮箱带附件

    本文实例为大家分享了Java实现邮件发送QQ邮箱带附件的具体代码,供大家参考,具体内容如下 添加依赖 <!-- https://mvnrepository.com/artifact/javax.mail/mail --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version>

  • springboot整合mail实现邮箱的发送功能

    第一步添加mail的依赖 <!--引入mail的依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 第二步编写邮箱的 yml配置文件 spring: #邮箱配置 mail: host: smtp.qq.com userna

随机推荐