System.Net.Mail是微软自家提供的工具,在.net程序中可以使用该空间中的SmtpClient实例来实现邮件的发送。

使用System.Net.Mail空间与Web.config配置相配合,可以很方便的实现邮件发送。

 

首先,在Web.config文件中<system.net>节点中加入<mailSettings>标签,示例如下:

<system.net>

    <mailSettings>

      <smtp from="测试者&lt;tester@testserver.com&gt;">

        <network host="smtp.ym.163.com" password="MyTestPassword" port="25"

            userName="tester@testserver.com" enableSsl="false" defaultCredentials="false" />

      </smtp>

    </mailSettings>

</system.net>

 

接下来便是C#代码:(需要using System.Net.Mail;)

/// <summary>

/// 发送HTML邮件,有抄送和密送

/// 需要在Web.config文件中的system.net下的mailSettings节点进行配置

/// </summary>

/// <param name="mailto">收件人地址</param>

/// <param name="mailcc">抄送地址</param>

/// <param name="mailbcc">密送地址</param>

/// <param name="mailsubject">邮件主题</param>

/// <param name="mailbody">邮件正文</param>

public static void SendMail(string mailto, string mailcc, string mailbcc, string mailsubject, string mailbody)

{

    MailMessage mMessage = new MailMessage();

    MailAddress mTo = new MailAddress(mailto);

    if (mailcc != "") { MailAddress mCC = new MailAddress(mailcc); mMessage.CC.Add(mCC); }

    if (mailbcc != "") { MailAddress mBCC = new MailAddress(mailbcc); mMessage.Bcc.Add(mBCC); }

    mMessage.To.Add(mTo);

    mMessage.Subject = mailsubject;

    //正文和主题的字符编码都设置为UTF8

    mMessage.SubjectEncoding = System.Text.Encoding.UTF8;

    mMessage.BodyEncoding = System.Text.Encoding.UTF8;

    mMessage.Body = mailbody;

    //正文支持html

    mMessage.IsBodyHtml = true;

    SmtpClient client = new SmtpClient();

    client.Send(mMessage);

}

 

再接下来就可以在程序任意位置调用SendMail方法来实现发送邮件了:

SendMail("272023290@qq.com", "", "", "测试20140418-2", "<h1>你好,这是第二封测试邮件</h1>");

 

如果程序所使用的SMTP服务器不作特殊限制的话,你的收件箱就可以正常收到这封测试邮件了。

同时,由于我们在Web.config中设置的是“邮件测试者&lt;tester@testserver.com&gt;”,所以收到的邮件的发件人将会是“邮件测试者”。

本文结束。

在.net程序中使用System.Net.Mail来发送邮件的更多相关文章

  1. C#中使用System.Web.Mail.MailMessage类无法CC多人的问题

    从.NET 2.0 开始,引入了一个新的类,System.Net.Mail.MailMessage.该类用来取代 .NET 1.1 时代System.Web.Mail.MailMessage类.Sys ...

  2. SUID或SGID程序中能不能用system函数

    system()函数的声明和说明如下: 注意它的描述那里,system()执行一个由command参数定义的命令,通过调用/bin/sh -c命令来实现这个功能.也就是说它的逻辑是这样的! 进程调用s ...

  3. linux C程序中获取shell脚本输出(如获取system命令输出)

    转载自 http://blog.csdn.net/hjxhjh/article/details/7909518 1. 前言 Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些 ...

  4. linux c程序中获取shell脚本输出的实现方法

    linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...

  5. System.net.mail 腾讯ssl发送邮件超时

    我采用了.net 的自带组件 System.Web.Mail.MailMessage发送邮件,主要是在客户注册网站成功的时候发条欢迎邮件,最近邮件无法发送了,看了下腾讯smtp邮件配置,所有的邮件发送 ...

  6. java中的system.out.println()和JSP中out.println()差别

    out.println()输出到client.     在out.println()中,out是response的实例.是以response为对象进行流输出的,即将内容输出到client.假设在JSP ...

  7. 使用System.Net.Mail中的SMTP发送邮件(带附件)

    System.Net.Mail 使用简单邮件传输协议SMTP异步发送邮件 想要实现SMTP发送邮件,你需要了解这些类 SmtpClient :使用配置文件设置来初始化 SmtpClient类的新实例. ...

  8. 发现用System.Net.Mail发邮件(代码附后),附件稍微大一点就会造成程序假死. 有没有什么简单的解决办法呢? 多谢!!

    附件大,上传,发送一定会慢.程序卡,应该是主线程正在发送,邮件造成的.创建其他线程在后台去发.这样就不影响主线程做其他工作了   using System; using System.Collecti ...

  9. MOSS程序中如何发Mail?

    我们使用.NET类库中的API发Mail的时候,我们要配置他的SMTP Server等,但是在Sharepoint里,已经提供了相关的封装的方法: SPUtility.SendEmail(SPWeb, ...

随机推荐

  1. 异常System.Web.HttpException (0x80004005): Server cannot set status after HTTP headers have been sent.

    在用mvc 的AuthorizeAttribute做身份验证,重写HandleUnauthorizedRequest方法,在Application_Error方法里出现异常System.Web.Htt ...

  2. Linux逻辑卷管理器(LVM)

    LVM基础 通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM),用户可以在系统运行时动态调整文件系统的大小,把数据从一块硬盘重定位到另一块硬盘,也可以提高I/O ...

  3. JAR包

    1,      使用JAR文件    jar文件的全称是Java Archive File,意思就是Java档案文件,通常jar文件是一种压缩文件,与常见的ZIP压缩文件兼容,通常也被称为jar包,j ...

  4. 条码解析的一片js

    function HIBC_CheckCode(code) {     var nonCheckCode = code.substr(0, code.length - 1);     var arr ...

  5. IBM Tivoli NetView网管软件实战

    广大网络管理者需要一款包括网络监控故障处理的一个集成网络管理平台,本文根据作者多年实践提出的基于IBM Tivoli Netview的综合网络管理平台,IBM Tivoli与Cisco一直保持着良好的 ...

  6. MFC常见问题解惑

    MFC类的分类 1 Root: CObject : CObject2 Application Architecture Classes: CWinApp/CFrameWnd/... 3 Window, ...

  7. 利用SecondaryNameNode文件恢复Namenode-实践可行

    二. namenode故障恢复(importCheckpoint) *注意事项: (1) 为了便于将随便一台datanode临时用作namenode,datanode和namenode配置需要一模一样 ...

  8. 对于返回void类型的asyc的异步方法,如何修改,能使用await

    下面是使用WebClinet 获取百度首页的html代码,一般的写法如下: private void Button_Click(object sender, RoutedEventArgs e) { ...

  9. CentOS学习笔记--防火墙iptables

    Linux 的防火墙:iptables iptables是封包过滤软件,Linux内核2.6以上都是这款软件.本节节选自 鸟哥的 Linux 私房菜 -- 服务器架设篇  第九章.防火墙与 NAT 服 ...

  10. 如何:通过对字符串应用 HTML 编码在 Web 应用程序中防止脚本侵入

    大多数脚本利用发生在用户可以将可执行代码(或脚本)插入您的应用程序时. 默认情况下,ASP.NET 提供请求验证.只要窗体发送包含任何 HTML,该验证都会引发错误. 您可以使用下列方法防止脚本利用: ...