一个关于发邮件的类,可以模拟发送对smtp服务器或者是本地文件夹
- namespace SportsStore.Domain.Concrete {
- public class EmailSettings {
- public string MailToAddress = "orders@example.com";
- public string MailFromAddress = "sportsstore@example.com";
- public bool UseSsl = true;
- public string Username = "MySmtpUsername";//MailToAddress一样
- public string Password = "MySmtpPassword";
- public string ServerName = "smtp.example.com";
- public int ServerPort = ;//Gmail为587,其他一般为25
- public bool WriteAsFile = false;//设为false邮件将发送到路径FileLoacation
- public string FileLocation = @"c:\sports_store_emails";
- }
- public class EmailOrderProcessor :IOrderProcessor {
- private EmailSettings emailSettings;
- public EmailOrderProcessor(EmailSettings settings) {
- emailSettings = settings;
- }
- public void ProcessOrder(Cart cart, ShippingDetails shippingInfo) {
- using (var smtpClient = new SmtpClient()) {
- smtpClient.EnableSsl = emailSettings.UseSsl;
- smtpClient.Host = emailSettings.ServerName;
- smtpClient.Port = emailSettings.ServerPort;
- smtpClient.UseDefaultCredentials = false;
- smtpClient.Credentials
- = new NetworkCredential(emailSettings.Username, emailSettings.Password);
- if (emailSettings.WriteAsFile) {
- smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
- smtpClient.PickupDirectoryLocation = emailSettings.FileLocation;
- smtpClient.EnableSsl = false;
- }
- StringBuilder body = new StringBuilder()
- .AppendLine("A new order has been submitted")
- .AppendLine("---")
- .AppendLine("Items:");
- foreach (var line in cart.Lines) {
- var subtotal = line.Product.Price * line.Quantity;
- body.AppendFormat("{0} x {1} (subtotal: {2:c}", line.Quantity,
- line.Product.Name,
- subtotal);
- }
- body.AppendFormat("Total order value: {0:c}", cart.ComputeTotalValue())
- .AppendLine("---")
- .AppendLine("Ship to:")
- .AppendLine(shippingInfo.Name)
- .AppendLine(shippingInfo.Line1)
- .AppendLine(shippingInfo.Line2 ?? "")
- .AppendLine(shippingInfo.Line3 ?? "")
- .AppendLine(shippingInfo.City)
- .AppendLine(shippingInfo.State ?? "")
- .AppendLine(shippingInfo.Country)
- .AppendLine(shippingInfo.Zip)
- .AppendLine("---")
- .AppendFormat("Gift wrap: {0}", shippingInfo.GiftWrap ? "Yes" : "No");
- MailMessage mailMessage = new MailMessage(
- emailSettings.MailFromAddress, // From
- emailSettings.MailToAddress, // To
- "New order submitted!", // Subject
- body.ToString()); // Body
- if (emailSettings.WriteAsFile) {
- mailMessage.BodyEncoding = Encoding.ASCII;
- }
- smtpClient.Send(mailMessage);
- }
- }
- }
- }
一个关于发邮件的类,可以模拟发送对smtp服务器或者是本地文件夹的更多相关文章
- outlook邮箱邮件与企业邮箱同步(outlook本地文件夹邮件,web邮箱里没有)
用惯了outlook2010, 问题:今天将邮件放到自定义文件夹后,发现在web邮箱中看不到邮件了.不能同步到企业邮箱. 解决忙了一天,才知道是账户类型问题,pop3类型,只下载不上传.所以outlo ...
- iOS-打电话、发短信、发邮件【指定QQ用户发送QQ消息】
1.发短信 头文件 #import <MessageUI/MessageUI.h> 头部代理 @interface ViewController ()<MFMessageCompos ...
- [golang]使用gomail发邮件(在Go中发送电子邮件的最佳方式)
1 前言 定义邮箱服务器连接信息,如果是网易邮箱 pass填密码,qq邮箱填授权码(客户端专用密码). gomail包: go get gopkg.in/gomail.v2 更多功能可以参考 http ...
- Linux搭建smtp服务器+laravel5.2发邮件配置
/** * 这里主要是想通过自己搭建smtp服务器,配置laravel5.2框架,实现邮箱发邮件功能, * 主要内容是搭建smtp服务器,laravel5.2发邮件顺手提一下 */ /** * 1.l ...
- Android进阶(十)Android 发邮件
最近在做的APP涉及到发邮件,总结如下: 在android里进行邮件客户端开发可以有两种方式: 在邮件客户端的设计中,可以采用两种方法. 一种是调用android系统自带的邮件服务 优点:这种方法比较 ...
- 带着新人学springboot的应用10(springboot+定时任务+发邮件)
接上一节,环境一样,这次来说另外两个任务,一个是定时任务,一个是发邮件. 1.定时任务 定时任务可以设置精确到秒的准确时间去自动执行方法. 我要一个程序每一秒钟说一句:java小新人最帅 于是,我就写 ...
- testng优化:失败重跑,extentReport+appium用例失败截图,测试报告发邮件
生成的单html方便jenkins集成发邮件,= = 构建失败发邮件 参考:https://blog.csdn.net/galen2016/article/details/77975965 步骤: 1 ...
- 如何用python发邮件
python发送各类邮件的主要方法 一.相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 1.smtplib模块 smtplib.SM ...
- 关于使用Java Mail发邮件的问题
今天做东西的时候突然遇到需要发邮件的问题,然后就使用SMTP协议进行邮件的发送.用了一个工具类简化邮件发送的功能, 在这次试验中,我使用了自己的QQ邮箱进行发送邮件的发送者. public class ...
随机推荐
- openstack(liberty):部署实验平台(二,简单版本软件安装 part2)
继续前面的part1,将后续的compute以及network部分的安装过程记录完毕! 首先说说compute部分nova的安装. n1.准备工作.创建数据库,配置权限!(密码依旧是openstack ...
- [Hibernate] - Load and Get
Hibernate中使用session的load(...)和get(...)区别: 1.load()方法是在返回的类被后期调用时,才会去提交SQL查询数据库. 2.get()方法是在调用get()时就 ...
- 基于SpringMVC下的Rest服务框架搭建【1、集成Swagger】
基于SpringMVC下的Rest服务框架搭建[1.集成Swagger] 1.需求背景 SpringMVC本身就可以开发出基于rest风格的服务,通过简单的配置,即可快速开发出一个可供客户端调用的re ...
- MIT牛人解说数学体系(转载)
原文网址:http://www.guokr.com/post/442622/ 在过去的一年中,我一直在数学的海洋中游荡,research进展不多,对于数学世界的阅历算是有了一些长进. 为什么要深入数学 ...
- MSSQL update 多表关联更新
update tMeter set 字段= t.源自段 from ( select * from 源表信息 ) t where 关联条件 实际demo: UPDATE dbo.WX_TWODIMENC ...
- NOR Flash擦写和原理分析 (一)
1. NOR FLASH 的简单介绍 NOR FLASH 是很常见的一种存储芯片,数据掉电不会丢失.NOR FLASH支持Execute On Chip,即程序可以直接在FLASH片内执行(这意味着存 ...
- Tomcat服务器搭建
一.JDK环境搭建 二.tomcat下载安装 三.tomcat服务启动 cmd> net start tomcat8 四.查看tomcat服务器启动情况: http://localhost:8 ...
- activiti自定义流程之自定义表单(一):环境配置
先补充说一下自定义流程整个的思路,自定义流程的目的就是为了让一套代码解决多种业务流程,比如请假单.报销单.采购单.协作单等等,用户自己来设计流程图. 这里要涉及到这样几个基本问题,一是不同的业务需求, ...
- [技巧]实际项目中background-image应写在页面上
摘自:http://www.zhangxinxu.com 因为实际项目中(数据对接时),这肯定是个动态的URL地址,css文件似乎不支持动态URL 地址. <img src="../i ...
- BIP_开发案例07_将原有Report Builer报表全部转为XML Publisher形式(案例)
2014-05-31 Created By BaoXinjian