十、.NET使用本地Outlook邮箱指定邮箱用户名和密码发送邮件
十、.NET使用本地Outlook邮箱指定邮箱用户名和密码发送邮件
1、添加Microsoft.Office.Interop.Outlook引用
2、封装发送邮件方法
using System;
using System.Configuration;
using System.Net.Mail; namespace ServiceMe.Apps.Business.Common.Unity
{
/// <summary>
/// 发送邮件帮助类
/// </summary>
public class MailHelper
{
/// <summary>
/// 邮箱用户名
/// </summary>
private static readonly string mailUserName = ConfigurationManager.AppSettings["MailUserName"];
/// <summary>
/// 邮箱密码
/// </summary>
private static readonly string mailUserPassword = ConfigurationManager.AppSettings["MailUserPassword"];
/// <summary>
/// 邮件服务器
/// </summary>
private static readonly string emailServer= ConfigurationManager.AppSettings["EmailServer"];
/// <summary>
/// 设置为true允许安全连接本地客户端发送邮件 , 设置为false不允许允许安全连接本地客户端发送邮件
/// </summary>
private static readonly string enableSsl = ConfigurationManager.AppSettings["EnableSsl"]; /// <summary>
/// 发送EMAIL
/// </summary>
/// <param name="sRecipientEmail">收件人地址</param>
/// <param name="sSubject">主题</param>
/// <param name="sMessage">内容</param>
/// <param name="sSendName">发件人名称</param>
/// <returns>发送是否成功</returns>
public static bool SendMail(string sRecipientEmail, string sSubject, string sMessage)
{
try
{
//邮件对象
MailMessage emailMessage; //smtp客户端对象
SmtpClient client; string sSenderEmail = mailUserName;
emailMessage = new MailMessage(sSenderEmail, sRecipientEmail, sSubject, sMessage);
emailMessage.IsBodyHtml = true;
emailMessage.SubjectEncoding = System.Text.Encoding.Default;
emailMessage.BodyEncoding = System.Text.Encoding.Default;
//加入
emailMessage.Headers.Add("X-Priority", "");
emailMessage.Headers.Add("X-MSMail-Priority", "Normal");
emailMessage.Headers.Add("X-Mailer", "Microsoft Outlook Express 6.00.2900.2869");
emailMessage.Headers.Add("X-MimeOLE", "Produced By Microsoft MimeOLE V6.00.2900.2869");
emailMessage.Headers.Add("ReturnReceipt", ""); //邮件发送客户端
client = new SmtpClient();
//邮件服务器及帐户信息
client.Host = emailServer;
//client.Host = "smtp.163.com";
//client.Port = 465;
//client.EnableSsl = true;
System.Net.NetworkCredential Credential = new System.Net.NetworkCredential(); //web.config中读取邮件服务器用户名和密码信息
Credential.UserName = mailUserName;
Credential.Password = mailUserPassword;
client.Credentials = Credential;
client.EnableSsl =Convert.ToBoolean(enableSsl);
//发送邮件
client.Send(emailMessage);
}
catch(Exception ex)
{
//错误处理待定
Log4NetHelper.WriteError($"发送邮件错误信息:{ex.Message},\r\n堆栈信息:{ex.StackTrace}");
return false;
}
return true;
}
}
}
3、config添加配置文件
<appSettings>
<!--跨域配置-->
<add key="cors_allowOrigins" value="*" />
<add key="cors_allowHeaders" value="*" />
<add key="cors_allowMethods" value="*" />
<add key="EmailServer" value="smtp.office365.com"/>
<add key="EnableSsl" value="true"/>
<add key="MailUserName" value="xiaogang.tang@medalsoft.com" />
<add key="MailUserPassword" value="HYqdp776" />
</appSettings>
4、调用示例
MailHelper.SendMail("xxxx@qq.com", "测试邮件", "请注意,这是一封.NET自动使用OutLook发送的测试邮件!");

十、.NET使用本地Outlook邮箱指定邮箱用户名和密码发送邮件的更多相关文章
- 用指定的用户名和密码无法登录到该ftp服务器
今天在win2008 R2 服务器上默认部署FTP站点时遇到了两个小问题,在网上找了好久资料后发现还是解决不了问题,最终找到问题的原因,在此共享给大家 1.Windows无法访问此文件夹.请确保输入的 ...
- .NET使用本地Outlook邮箱指定邮箱用户名和密码发送邮件
1.添加Microsoft.Office.Interop.Outlook引用 2.封装发送邮件方法 using System; using System.Configuration; using Sy ...
- [Jenkins Git] 在Jenkins上拉代码总是失败,跑去本地看,提示输入用户名和密码,但是Jenkins上已经配置了正确的用户名和密码
git config --global credential.helper manager
- outlook 使用临时邮箱 使用旧数据
控制面板-->邮件32位 显示配置文件 删除再添加 具体可参考 https://blog.csdn.net/liuyukuan/article/details/80043840 偷懒,图片从网上 ...
- html实现邮箱发送邮件_js发送邮件至指定邮箱功能
在前端开发中,JavaScript并没有提供直接操作Email邮箱的功能方法,但是遇到这样的需求,我们应该如何实现js发送邮件至指定邮箱功能呢?下面列举能够在通过前端实现邮件发送的几种方式: 方式一: ...
- 屏幕监视专家 v1.0 定时录制屏幕动画发送到指定邮箱
ScreenWatcher v1.0功能:定时录制屏幕动画发送到指定邮箱,录制的动画为gif,可指定录制多长时间.指定几点直接开始录制,完全后台运行.作者:Bluefish 下载链接: http:// ...
- PHP自学4——通过mail函数将feedback界面用户填写表单信息发送至指定邮箱
这一讲的内容依旧简单(谁叫PO主水平菜,依旧是个弱鸡ORZ),通过PHP的内置mail函数将一个反馈界面的信息发送到指定邮箱.在Windows平台不能直接需要使用该函数,需要下载一个sendmail并 ...
- 使用cmd查看电脑连接过的wifi密码并将密码发送至指定邮箱(三)
之前,我写了使用cmd查看电脑连接过的wifi密码(二)和使用cmd查看电脑连接过的wifi密码(一)但其中的功能不完善,在本次的更新中新增了更多的功能,其实2018/10/24 就更新完成了,一直拖 ...
- Dynamics 365使用代码发送邮件给指定邮箱地址
摘要: 微软动态CRM专家罗勇 ,回复303或者20190213可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 当然,首先要 ...
随机推荐
- git log的个性化设置
--date=(relative|local|default|iso|rfc|short|raw) Only takes effect for dates shown in human-readabl ...
- 【leetcode】1027. Longest Arithmetic Sequence
题目如下: Given an array A of integers, return the length of the longest arithmetic subsequence in A. Re ...
- HashMap的几种遍历方式(转载)
今天讲解的主要是使用多种方式来实现遍历HashMap取出Key和value,首先在java中如果想让一个集合能够用for增强来实现迭代,那么此接口或类必须实现Iterable接口,那么Iterable ...
- cordova+vue做的app解决引入cordova-plugin-splashscreen后启动先显示黑屏在显示启动页
先上项目目录结构cordova项目结构 android platform 结构 图中用红框框起来的为主要修改文件 这篇主要的讲cordova项目引用了cordova-plugin-splashscre ...
- Newtonsoft.Json源码的solution打开之后,无法加载project
无法加载项目 https://github.com/JamesNK/Newtonsoft.Json C:\repository\GitHub\Other\Newtonsoft.Json\Src\New ...
- nas请求响应示意图
curl nginx(proxy_connect) nginx(NAS) | | | | | | (1) |-- CONNECT 443 -> | | | | | | |---- [ TCP c ...
- vue.js + element 搭建后台管理系统 笔记(一)
此文仅记录本人在搭建后台系统过程中遇到的难点及注意点,如果能帮到各位自然是极好的~~~ 项目主要架构:vueJS.elementUI.scss 一.项目初始化 首先需要安装nodejs,安装方法就不在 ...
- 阅读笔记02-读懂HTTPS及其背后的加密原理
1 为什么需要https 使用https的原因其实很简单,就是因为http的不安全. 当我们往服务器发送比较隐私的数据(比如说你的银行卡,身份证)时,如果使用http进行通信.那么安全性将得不到保障. ...
- Android深度探索-卷1第九章心得体会
在android系统中使用Linux 驱动有两种方式一种是通过传统的方式直接与Lmux 驱动交互,如,直接读写设备文件的数据.另外一种是Android特有的,就是通过HAL 模块.HAL 模块本质是通 ...
- 使用Logistic Regression Algorithm进行多分类数字识别的Octave仿真
所需解决的问题是,训练一个Logistic Regression系统,使之能够识别手写体数字1-10,每张图片为20px*20px的灰度图.训练样例的输入X是5000行400列的一个矩阵,每一行存储一 ...