引用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;

EMailHepler类:

public static class EmailHelper
{
/// <summary>
/// C#发送邮件函数
/// </summary>
/// <param name="fromDisplayName">发件邮箱显示名</param>
/// <param name="sto">收件邮箱</param>
/// <param name="sSubject">主题</param>
/// <param name="sBody">内容</param>
/// <param name="sfiles">附件路径,绝对路径</param>
/// <param name="ccto">抄送地址</param>
/// <param name="isBodyHtml">邮件是否支持html格式</param>
/// <returns></returns>
public static bool Sendmail(string fromDisplayName, string sto, string sSubject, string sBody,
string[] sfiles = null, string[] ccto = null, bool isBodyHtml = false)
{
////设置from和to地址
MailAddress from = new MailAddress(EmailSection.Instance.SMTPuser, fromDisplayName);
MailAddress to = new MailAddress(sto); ////创建一个MailMessage对象
MailMessage oMail = new MailMessage(from, to); //// 添加附件
if (sfiles != null)
{
foreach (var item in sfiles)
{
oMail.Attachments.Add(new Attachment(item));
}
} //添加抄送用户
if (ccto != null)
{
foreach (var item in ccto)
{
oMail.CC.Add(new MailAddress(item));
}
}
////邮件标题
oMail.Subject = sSubject; ////邮件内容
oMail.Body = sBody; ////邮件格式
oMail.IsBodyHtml = isBodyHtml; ////邮件采用的编码
oMail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312"); ////设置邮件的优先级为高
oMail.Priority = MailPriority.Normal; ////发送邮件
SmtpClient client = new SmtpClient();
////client.UseDefaultCredentials = false;
client.Host = EmailSection.Instance.SMTPHost;
client.Credentials = new NetworkCredential(EmailSection.Instance.SMTPuser, EmailSection.Instance.SMTPpass);
client.DeliveryMethod = SmtpDeliveryMethod.Network;
try
{
client.Send(oMail);
return true;
}
catch (Exception err)
{
Console.WriteLine(err.Message.ToString());
return false;
}
finally
{
////释放资源
oMail.Dispose();
} }
}
EmailSection配置相关信息:
public class EmailSection : ConfigurationSection
{
private static EmailSection _instance = null; public static EmailSection Instance
{
get
{
if (_instance == null)
{
_instance = (EmailSection)ConfigurationManager.GetSection(typeof(EmailSection).Name);
}
return _instance;
}
}
[ConfigurationProperty("SMTPHost", IsRequired = true)]
public string SMTPHost
{
get
{ return (String)this["SMTPHost"]; }
set
{ this["SMTPHost"] = value; }
}
[ConfigurationProperty("SMTPuser", IsRequired = true)]
public string SMTPuser
{
get
{ return (String)this["SMTPuser"]; }
set
{ this["SMTPuser"] = value; }
}
[ConfigurationProperty("SMTPpass", IsRequired = true)]
public string SMTPpass
{
get
{ return (String)this["SMTPpass"]; }
set
{ this["SMTPpass"] = value; }
}
}

配置文件配置:

<EmailSection SMTPHost = "smtp.exmail.qq.com" SMTPuser = "developer@laiyihuo.com" SMTPpass = "laiyihuo_1"></EmailSection>
 

邮件发送 EMailHelper的更多相关文章

  1. .NET开发邮件发送功能的全面教程(含邮件组件源码)

    今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         ...

  2. J2EE 邮件发送那些事儿

    距离自己写的关于java邮件发送的第一篇博客已经有很长一段时间了,现在回过头看看.虽然代码质量方面有待提高,整体结构也不怎样,但是基本思路和过程还是比较纯的.现在有空写写J2EE中邮件发送的开发,实际 ...

  3. 结合ABP源码实现邮件发送功能

    1. 前言 2. 实现过程 1. 代码图(重) 2.具体实现 2.1 定义AppSettingNames及AppSettingProvider 2.2 EmailSenderConfiguration ...

  4. SSH项目里面 忘记密码的邮件发送功能

    package com.xxx.util; import java.util.Date; import java.util.Properties; import javax.mail.Address; ...

  5. [UWP]UWP中获取联系人/邮件发送/SMS消息发送操作

    这篇博客将介绍如何在UWP程序中获取联系人/邮件发送/SMS发送的基础操作. 1. 获取联系人 UWP中联系人获取需要引入Windows.ApplicationModel.Contacts名称空间. ...

  6. java spring 邮件发送

    开发中经常会遇到发送邮件进行用户验证,或者其它推送信息的情况,本文基于spring,完成邮件的发送,主要支持普通文本邮件的发送,html文本邮件的发送,带附件的邮件发送,没有实现群发.多个附件发送等需 ...

  7. Java邮件发送与接收原理

    一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu ...

  8. c#实现邮件发送链接激活

    2016-08-24 10:09:52 public void MailSend(string email) { MailMessage MyMail = new MailMessage(); MyM ...

  9. .Net(C#)最简单的邮件发送案例

    一.序言 刚开始接触邮件发送功能的时候,在网上找的资料都挺复杂的!对于新手入门有点难(至少对于本人来说,第一次接触的时候确实不容易).这里就写一段简单的邮箱发送代码,备忘,也给新手一个参考(相关类的字 ...

随机推荐

  1. java对象初级知识

    this属于类 方法中没有自己的this指针(本来以为js方法中有,其实并没有里,那是被new出来的function 在声明的时候可以赋初值: int a =12 但不能   int a  ;   a ...

  2. memmove 的实现

    baidu的笔试题目 用C语言实现一个公用库函数void * memmove(void *dest,const void *src,size_t n).该函数的功能是拷贝src所指的内存内容前n个字节 ...

  3. 使用 ADD-ON SDK 开发 基于 Html JQuery 和 CSS 的 firefox 插件入门教程1: 创建一个简单的 Add-on

    [本文转载自http://sixpoint.me/942/implementing-simple-addon/] 实现一个简单的插件 教程的这个部分带你使用 SDK 来实现, 运行并打包一个插件. 这 ...

  4. C程序设计语言练习题1-19

    练习1-19 编写函数reverse(s),将字符串s中的字符顺序颠倒过来.使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序.代码如下: #include <stdio.h> // ...

  5. app 测试点

    以下所有测试最后必须在真机上完整的执行1.安装.卸载测试 在真机上的以及通过91等第三方的安装与卸载 安装在手机上还是sd卡上 2.启动app测试3.升级测试 数字签名.升级覆盖安装.下载后手动覆盖安 ...

  6. Swift—默认构造函数-备

    结构体和类的实例在构造过程中会调用一种特殊的init方法,称为构造函数.构造函数没有返回值,可以重载.在多个构造函数重载的情况下,运行环境可以根据它的外部参数名或参数列表调用合适的构造函数.默认构造函 ...

  7. UNIX网络进程间通信漫谈(1)

    进程间通信 IPC是进程间通信的简称,指的是运行在某个操作系统上的不同进程间各种消息传递方式,在Unix操作系统过去30年的演变史中,消息传递经历了如下几个阶段: 管道,管道是第一个广泛使用的IPC形 ...

  8. 文件下载cordovaFileTransfer:cordova.file.documentsDirectory is null

    在Android平台上使用:$cordovaFileTransfer进行文件下载时提示:cordova.file.documentsDirectory is null,查了以下文档参照:http:// ...

  9. Java比较两个日期的大小

    public static String getComparedSBQDate(String yxqq,String starttime){ String str = starttime; Simpl ...

  10. Highly divisible triangular number

    我的那个暴力求解,太耗时间了. 用了网上产的什么因式分解,质因数之类的.确实快!还是数学基础不行,只能知道大约. The sequence of triangle numbers is generat ...