一、开发HY.Mail的初衷

Nuget或者github上有很多成熟且优秀的邮件库可以使用, 但是目前找到的使用都不够简洁或者不适合我的使用场景

我的场景是开发应用场景(例如系统通知、运维通知),而非业务场景(给客户发送邮件,HY.Mail也适用于此场景)。

需要能够灵活简洁的调用,需要预设一些邮件信息。

例如系统运维:需要做系统日志的邮件通知,一般收件人、接收人、抄送人都是预选设置好的。那么我们就需要预先设置N种MailSender,然后根据需求直接调用对应的MailSender发送邮件正文即可,而不必调用前设置发件人密码 收件人。

二、HY.Mail使用

HY.Mail是进一步封装了System.Net.Mail,轻量,简洁,线程安全,进行了多线程处理的优化。

定义自己的Sender(类库已经预设了QQMailSender):

   public class MyMailSender : MailSender
{
private const string HOST = "smtp.XX.com";
private const int PORT = ;
public MyMailSender(string mailAddress, string password,string to="",string cc="",string title="")
: base(HOST, PORT, mailAddress, password,to,cc)
{ } }

用法:

var Sender = new MyMailSender("XXXXXXXXXX@xx.com", "XXXXXXXXXXXXXXXX");
Sender.Send("XXXXXXXXX@xx.com", "测试邮件", "邮件正文");

通过定义Sender可以灵活定义不同类型的邮箱:比如QQ、163、阿里邮箱。通过sender也可以预设默认收件人,如下:

 public static class MyMailFactory
{
public static string test = string.Empty;
public static myMailSender ToXXMailSender = new MyMailSender("XX@qq.com", "pwd","to@qq.com");
public static myMailSender ToYYMailSender = new MyMailSender("YY@qq.com", "pwd","to@qq.com"); }
MyMailFactory.ToXXMailSender.Send("title","content")

这样一来,可以在不同场景可以非常灵活简洁的调用。

Nuget安装:Install-Package HY.Mail

GitHub地址:https://github.com/HYDevTools/HYMail-CSharp

HY.Mail:C#简单、易用的邮件工具库的更多相关文章

  1. 简单易用的图像解码库介绍 —— stb_image

    原文链接:简单易用的图像解码库介绍 -- stb_image 说到图像解码库,最容易想起的就是 libpng 和 libjpeg 这两个老牌图像解码库了. libpng 和 libjpeg 分别各自对 ...

  2. 极力推荐一个简单好用的C++JSON库

      极力推荐一个简单好用的C++JSON库CJsonObject,让使用json如使用C++原生的结构体那般方便,随心所欲.CJsonObject是个优秀的C++JSON库,也许会是你见过的最为简单易 ...

  3. 设计与开发一款简单易用的Web报表工具(支持常用关系数据及hadoop、hbase等)

    EasyReport是一个简单易用的Web报表工具(支持Hadoop,HBase及各种关系型数据库),它的主要功能是把SQL语句查询出的行列结构转换成HTML表格(Table),并支持表格的跨行(Ro ...

  4. 五、springboot 简单优雅是实现邮件服务

    前言 spring boot 的项目放下小半个月没有更新了,终于闲下来可以开心的接着写啦. 之前我们配置好mybatis 多数据源的,接下来我们需要做一个邮件服务.比如你注册的时候,需要输入验证码来校 ...

  5. android中的http框架,使其更加简单易用

    Afinal 是一个android的sqlite orm 和 ioc 框架. Afinal 是一个android的sqlite orm 和 ioc 框架.同时封装了android中的http框架,使其 ...

  6. FineBI:一个简单易用的自助BI工具

    过去,有关企业数据分析的重担都压在IT部门,传统BI分析更多面向的是具有IT背景的人员.但随着业务分析需求的增加,很多公司都希望为业务用户提供自助分析服务,将分析工作落实到业务人员手中.但同时,分析工 ...

  7. DataAccess通用数据库访问类,简单易用,功能强悍

    以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展dat ...

  8. 快速上手seajs——简单易用Seajs

    快速上手seajs——简单易用Seajs   原文  http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...

  9. [.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS

    [.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS 本篇要点:在进阶篇快要结束的时候说说源代码管理器,我们的开发,不是一个人可以完成的事,团队协作很重要,而且 ...

随机推荐

  1. PHP 字符串转 bigint 型md5

    1 2 3 4 5 6 7 8 /**      * 字符串转bigint      * @return bigint(string)      */     public function md5( ...

  2. php XSS安全过滤代码

    function remove_xss($val) { // remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are ...

  3. 写出优雅又地道的pythonic代码(转自网络)

    本文是Raymond Hettinger在2013年美国PyCon演讲的笔记(视频, 幻灯片). 示例代码和引用的语录都来自Raymond的演讲.这是我按我的理解整理出来的,希望你们理解起来跟我一样顺 ...

  4. Windows下编译nginx-rtmp-module

    http://nginx.org/en/docs/howto_build_on_win32.html 官网上的操作说明. 官网的方法Nginx编译方法,思路是一致的,只是有几个细节地方需要调整. 需要 ...

  5. java.util.ArrayList、java.util.vector和java.util.LinkedList (JDK 1.8.0_111)

    一.java.util.ArrayList 1.1 ArrayList 继承结构 ArrayList实现了RandomAccess,可以随机访问(其实就是通过数组下标访问):实现了Cloneable, ...

  6. So, you think you know JavaScript?

    Baranovskiy 参考:http://dmitry.baranovskiy.com/post/91403200   题目一:   if (!("a" in window)) ...

  7. MFC控件实现视频“暂停” “播放”循环

    问static有什么作用,朗朗上口,可是用起来呢 MFC"按钮"控件实现开始显示"播放",按一下之后就开始播放相关视频,并且按钮显示为"暂停" ...

  8. Hadoop之SequenceFile

    Hadoop序列化文件SequenceFile能够用于解决大量小文件(所谓小文件:泛指小于black大小的文件)问题,SequenceFile是Hadoop API提供的一种二进制文件支持.这样的二进 ...

  9. Android 当打开“开发人员模式”中的“不保留活动”后,程序应当怎么保持正常执行

    Android 当打开"开发人员模式"中的"不保留活动"后,程序应当怎么保持正常执行咧. .? 在这几天,我一直在纠结这个问题.从发现,程序出现这个问题,是由于 ...

  10. 多域名环境,页面获取url的一种方案

    因为系统是分布式部署的.而且有多个域名,所以常常涉及到获取url的问题. 这是系统框架层面须要提供的能力.否则每一个模块都须要自己去想办法获取ip,就会非常混乱.上线也easy发生bug 主要须要解决 ...