引用:

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. 武汉科技大学ACM:1010: 零起点学算法27——判断是否直角三角形

    Problem Description 输入三个整数,分别代表三角形的三条边长度,判断能否构成直角三角形 Input 输入3个整数a,b,c(多组数据,-5000000<a,b,c<500 ...

  2. Supervisor的一些基础使用

    Supervisor是一个进程监控程序. 满足的需求是:我现在有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了 ...

  3. OnCreate

    用于创建插入符 /* CClientDC dc(this); TEXTMETRIC tm; dc.GetTextMetrics(&tm);//得到窗口字体信息 CreateSolidCaret ...

  4. Facebook 正式开源其大数据查询引擎 Presto

    Facebook 正式宣布开源 Presto —— 数据查询引擎,可对250PB以上的数据进行快速地交互式分析.该项目始于 2012 年秋季开始开发,目前该项目已经在超过 1000 名 Faceboo ...

  5. Ionic 测试针对Andorid平台

    环境准备: (1)nodejs环境以及配置完成: y@y:~$ node -v v0.12.2 (2)Android SDK 环境变量已经配置完毕: export ANDROID_SDK=/home/ ...

  6. HTML5 + CSS3 + JavaScript

    http://www.programmer.com.cn/14761/#more-14761 文/李晶 随着互联网产业的爆炸式增长,与之伴生的Web前端技术也在历经洗礼和蜕变.尤其是近几年随着移动终端 ...

  7. microsoft

    http://blog.csdn.net/morewindows/article/details/8684061 http://blog.csdn.net/watkinsong/article/det ...

  8. angularjs 1.3 综合学习 (one way bind , ng-if , ng-switch , ng-messages, ng-form ,ng-model )

    主要讲解1.3后的一些新功能,和一些以前没有介绍的小功能 (ng-if,ng-switch). 1.one way bind 这个之前的版本已经有人自己实现了,但是在1.3之后,angularjs 有 ...

  9. Protel 的自动推挤功能

    大家都在用PROTEL99SE...有时候要修改布好的线...一条条的去拆,这样很麻烦.其实PROTEL99SE是有推挤功能的...虽然不是很强...但是可以给大家带来方便.下面我就发个自己制作的教程 ...

  10. MCS-51系列和80C51系列单片机是否相同

    MCS是Intel公司单片机的系列符号.Intel推出有MCS-48.MCS-51.MCS-96系列单片机. MCS-51系列单既包括三个基本型80C31.8051.8751,以及对应的低功耗型号80 ...