组件介绍和合作开发

  http://www.cnblogs.com/MrHuo/p/MrHuoControls.html

邮件发送组件

邮件发送组件采用常用的SMTP发送方式,需要添加以下格式的配置文件。

1、配置文件:

  文件名:SMTPConfig.xml

  文件内容:

  

<?xml version="1.0" encoding="utf-8" ?>
<SMTPConfig>
  <SMTPServer>smtp.qq.com</SMTPServer>
  <UserName>491217650@qq.com</UserName>
  <UserPassword>******</UserPassword>
  <Port>25</Port>
  <EnableSsl>false</EnableSsl>
  <Encoding>UTF-8</Encoding>
  <DefaultSender>491217650@qq.com</DefaultSender>
  <DefaultSenderName>[MrHuoStudio]</DefaultSenderName>
  <IsBodyHtml>true</IsBodyHtml>
  <IsAsyncSend>true</IsAsyncSend>
</SMTPConfig>

2、使用方法:

引用名称空间:using MrHuo.Controls.Email;

3、代码:

using (EmailSender email = new EmailSender()
{
    Subject = "Email Subject",
    EmailBody = "Hello World"
})
{
    email.AddReceiver("491217650@qq.com");
    email.AddReceiver("admin@mrhuo.com");
   //这里可以添加N个邮件接收者
    email.OnBeginSend += email_OnBeginSend;
   //事件,邮件发送之前触发
    email.OnEndSend += email_OnEndSend;
   //事件,邮件发送完毕触发
    email.OnError += email_OnError;
   //事件,邮件发送出错时触发
    email.Send();
}
void email_OnError(object sender, SendEmailFaildEventArgs e)
{
    Console.WriteLine("发送给地址【" + e.MailAddress + "】的邮件发送失败,原因:" + e.Exception.Message);
}
void email_OnBeginSend(object sender, SendEmailEventArgs e)
{
    Console.WriteLine("准备发送邮件:" + e.MailAddress);
}
void email_OnEndSend(object sender, SendEmailEventArgs e)
{
    Console.WriteLine("邮件已发送到:" + e.MailAddress);
}

其中的事件,可有可无,根据开发者自己需求开发。

【干货】.NET开发通用组件发布(二) 邮件发送组件的更多相关文章

  1. 转:Node.js邮件发送组件- Nodemailer 1.0发布

    原文来自于http://www.infoq.com/cn/news/2014/07/node.js-nodemailer1.0-publish Nodemailer是一个简单易用的Node.js邮件发 ...

  2. React Native组件(二)View组件解析

    相关文章 React Native探索系列 React Native组件系列 前言 了解了RN的组件的生命周期后,我们接着来学习RN的具体的组件.View组件是最基本的组件,也是首先要掌握的组件,这一 ...

  3. 【干货】.NET开发通用组件发布(一) 介绍

    组件介绍 集合个人和团都开发中遇到的一些通用组件,邮件发送组件.内容采集.CSV数据文件导入工具.日志记录组件.MVC验证登陆组件.MVC分页组件.短信发送组件和强大的Repeate和Repeater ...

  4. 【干货】.NET开发通用组件发布(四) 日志记录组件

    组件介绍和合作开发 http://www.cnblogs.com/MrHuo/p/MrHuoControls.html 日志记录组件功能介绍 通过基类Logger,实现了文本记录日志和数据库记录日志两 ...

  5. React Native组件(三)Text组件解析

    相关文章 React Native探索系列 React Native组件系列 前言 此前介绍了最基本的View组件,接下来就是最常用的Text组件,对于Text组件的一些常用属性,这篇文章会给出简单的 ...

  6. CI(CodeIgniter)框架下使用非自带类库实现邮件发送

    在项目开发过程中,需要到了邮件提醒功能.首先想到的是CI自身带不带邮件发送类,查看帖子,发现CI本身自带,然后试着利用CI自身带的类库来实现,经过搜搜很多帖子,不少开发者反馈CI自身的Email类有问 ...

  7. (Swiftmailer)高效的PHP邮件发送库

    Swiftmailer是一个类似PHPMailer邮件发送组件,它也支持HTML格式.附件发送,但它发送效率相当高,成功率也非常高,很多PHP框架都集成了Swiftmailer. Swiftmaile ...

  8. 微信小程序 自定义组件(modal) 引入组件

    项目结构: 步骤一:创建组件 声明这一组文件为自定义组件 modal.json { "component": true, // 自定义组件声明 "usingCompone ...

  9. 给 Web 开发人员推荐的通用独立 UI 组件(二)

    现代 Web 开发在将体验和功能做到极致的同时,对于美观的追求也越来越高.在推荐完图形库之后,再来推荐一些精品的独立 UI 组件.这些组件可组合在一起,形成美观而交互强大的 Web UI . 给 We ...

随机推荐

  1. ocos 信号量

    信号量分为  :声明信号量.互斥信号量 转: ucos-ii学习笔记——信号量的原理   ucos-ii学习笔记——信号量的原理及使用 #include "INCLUDES.h" ...

  2. 使用C# DES解密java DES加密的字符串

    转自 microAllen   最近需要使用C#的DES解密工具类解密字符串,但是要解密的字符串是使用java进行DES加密的,去网上查了关于C#和java关于DES加密解密的资料,发现可以相互加密解 ...

  3. ububtu 彻底卸载程序的几种方法

    sudo apt-get purge ......(点点为为程序名称) sudo apt-get autoremove sudo apt-get clean dpkg -l |grep ^rc|awk ...

  4. FJ省队集训DAY2 T2

    思路:我们可以考虑三角剖分,这样问题就变成考虑三角形的选取概率和三角形内有多少个点了. 先用树状数组预处理出三角剖分的三角形中有多少个点,然后用线段树维护,先用原点极角排序,然后枚举i,再以i极角排序 ...

  5. 一些pyhon的学习资料

    一直没有时间学习python,都说python语法简洁优美.但是我看它的语法还是不爽啊,没C/C++好阅读.但是C/C++又必须了解底层的计算机模型.着实会门槛高一些.特别是C++,对于我来说简直就是 ...

  6. tag_on_failure => [] # prevent default _grokparsefailure tag on real records

    [elk@zjtest7-frontend config]$ cat stdin04.conf input { stdin { } } filter { # drop sleep events gro ...

  7. BZOJ1430: 小猴打架

    1430: 小猴打架 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit: 328  Solved: 234[Submit][Status] Descripti ...

  8. git 查看文件修改记录

    今天追了个几年前留下来的坑, 在 git 里追溯修改过程坑死个爹, 具体方法估计没多久又会忘, 还是记下来以后有的参考 大部分教程都会告诉大家使用 git log 来查看对应文件的修改记录, 就像这样 ...

  9. [转]notifyDataSetChanged() 动态更新ListView

    有时候我们需要修改已经生成的列表,添加或者修改数据,notifyDataSetChanged()可以在修改适配器绑定的数组后,不用重新刷新Activity,通知Activity更新ListView.今 ...

  10. js推断元素是否隐藏

    if( document.getElementById("div").css("display")==='none')   if( document.getEl ...