C#连接Exchange 发送邮件代码如下

/// <summary>
/// exchange群发邮件
/// </summary>
/// <param name="credentialUserName">exchange用户名 [example: test]</param>
/// <param name="credentialUserPwd">exchange用户密码</param>
/// <param name="fromEmail">发送人地址 [example: test@allbring.com]</param>
/// <param name="recipientEmail">收件人地址</param>
/// <param name="domainName">邮件域名 [example: mail.allbring.com]</param>
/// <param name="subjectName">邮件主题</param>
/// <param name="bodyVal">邮件内容</param>
/// <param name="isHtml">是否为html</param>
/// <param name="fileArray">发送上传的路径</param>
/// <returns></returns>
/// 开发人员:ZJ
public static bool SendExchangeEmails(string credentialUserName, string credentialUserPwd, string fromEmail, List<string> recipientEmail, string domainName, string subjectName, string bodyVal, bool isHtml, string[] fileArray)
{
try
{
MailMessage message = new MailMessage();
MailAddress fromAddress = new MailAddress(fromEmail);
foreach (string item in recipientEmail)
{
message.To.Add(item);
}
message.From = fromAddress;
message.Subject = subjectName;
message.Body = bodyVal;
message.IsBodyHtml = isHtml;
if (fileArray != null)
{
for (int i = 0; i < fileArray.Length; i++)
{
//为邮件创建文件附件
Attachment attr = new Attachment(fileArray[i], MediaTypeNames.Application.Octet);
//添加邮件时间戳信息
ContentDisposition conDispositon = attr.ContentDisposition;
conDispositon.CreationDate = System.IO.File.GetCreationTime(fileArray[i]);//文件的创建日期
conDispositon.ModificationDate = System.IO.File.GetLastWriteTime(fileArray[i]);//文件的修改日期
conDispositon.ReadDate = System.IO.File.GetLastAccessTime(fileArray[i]);//文件的读取日期
//给邮件添加附件
message.Attachments.Add(attr);
}
} SmtpClient smtpClient = new SmtpClient();
smtpClient.Timeout = 50000;
smtpClient.Host = domainName;
smtpClient.Port = 25;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential(credentialUserName, credentialUserPwd);
smtpClient.EnableSsl = true;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.Send(message);
smtpClient.Dispose();
return true;
}
catch (Exception)
{
return false;
}
}

如果exchange服务器只做了证书,在发送邮件的机器上也要安装证书邮件才能发送出去。

参考地址:https://social.technet.microsoft.com/Forums/en-US/d37c7e8a-6d42-498a-bad4-5eb0ab7e9d40/connecting-to-exchange-server-using-c-to-send-an-email?forum=exchangesvrdevelopment

http://www.systemnetmail.com/faq/2.4.aspx

C# 连接 Exchange 发送邮件的更多相关文章

  1. 启用MFA的office 365 账号如何连接Exchange online

    第一篇随手笔记,从简单开始... 如何使用Exchange Online PowerShell呢? 以Windows操作系统为例,如Windows10:首先需要安装Exchange Online Po ...

  2. 已使用 163 邮箱测试通过,且支持 SSL 连接。 发送邮件

    示例:Jack 发送一封邮件给 Rose. public class SendMail {     public static void main(String[] args) {         b ...

  3. outlook 2003配置连接exchange server 2010报错——无法完成此操作。 与 Microsoft Exchange Server 的连接不可用。 Outlook 必须联机或连接才可完成该操作

    最近安装了一台Exchange 2013邮件服务器,但在客户端Outlook 2013手动配置邮箱时却发现了如下错误:   这里说一个简单的解决办法,实际上第一次启动Outlook时可以自动发现,只需 ...

  4. 通过TCPView工具查看foxmail用exchange方式连接exchange时用什么端口

    TCPView下载地址 https://docs.microsoft.com/zh-cn/sysinternals/downloads/tcpview

  5. python 使用exchange发送邮件(三)

    FYI: https://blog.csdn.net/LeoForBest/article/details/79429955

  6. android使用微软EWS发送邮件

    通常我们在android使用javamail发送邮件,可是很多时候我们需要连接Exchange服务(很多公司内部邮件服务器采用,并且未开通smtp服务)来发送邮件,这时候我们就要用到微软的 ews-j ...

  7. Outlook中在Exchange服务器无法保存邮件副本

    最近帮同事设置Outlook2007,结果她直接登录公司网页Exchange,发现存在Exchange上的邮件副本全没了,原以为是Outlook邮箱账号设置里”保存服务器项副本“没打勾,后来才发现账号 ...

  8. SharePoint 2013技巧分享系列 - 同步Exchange显示高清用户照片

    在“SharePoint 2013技巧分享系列 - Active Directory同步显示用户照片”文中介绍了如何同步Active Directory显示用户照片,但是同步完成后,用户照片尺寸和清晰 ...

  9. CentOS6.5_64位系统下安装配置postfix邮件系统 启用并配置SMTP在第三方上边使用发送邮件

    一前言 本来使用qq邮箱发送邮件,然后借助sendEmail来发送邮件告警,但是有每天的200封限制,很是不爽,于是想到来自己搭建邮件服务器来解决这个问题,关于使用sendEmail来借助qq邮箱来发 ...

随机推荐

  1. p3163 [CQOI2014]危桥

    传送门 分析 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string ...

  2. CF 1029E Tree with Small Distances

    昨晚随便玩玩搞个div3结果浪翻了…… 强烈谴责D题hack数据卡常 考虑到本题中所要求的最短距离不会大于2,所以我们可以把所有结点到$1$的距离通过对$3$取模分类,考虑到直接自顶向下贪心不满足局部 ...

  3. Hive安装及配置

    第一步:下载hive并解压 tar zxvf hive-0.8.1-bin.tar.gz 重命名: mv hive-0.8.1-bin hive 给权限:chown hadoop:hadoop hiv ...

  4. C#多线程 线程嵌套调用问题

    线程嵌套指的是:线程A的执行代码启动了线程B,线程B的执行代码又启动了线程C. 我原本以为线程A被Abort后,线程B会自动被Abort,但是我大错特错了. 在这种场景下,线程的管理就非常重要了. 线 ...

  5. c# 大文件分割 复制 Filestream 进度条

    大文件分割复制,每次复制100M 也可以复制别的较大数值. 小于1G的小文件就直接复制得了.代码里没写 ,但是很简单 直接写进去就好了,难得是分割复制 所以没写. 好吧 我还是改了 改成小文件也可以复 ...

  6. django中将views.py中的python方法传递给html模板文件

    常规的模板渲染 from django.db import models # Create your models here. class ArticalType(models.Model): cap ...

  7. 在Python中正确使用Unicode

    正确处理文本,特别是正确处理Unicode.是个老生常谈的问题,有时甚至会难倒经验丰富的开发者.并不是因为这个问题很难,而是因为对软件中的文本,开发者没有正确理解一些关键概念及其表示方法.在Stack ...

  8. 转载文章 MySQL与Oracle的区别

    MySQL与Oracle的区别   1.  Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高 ...

  9. Task4

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 15.Subtree of Another Tree(判断一棵树是否为另一颗树的子树)

    Level:   Easy 题目描述: Given two non-empty binary trees s and t, check whether tree t has exactly the s ...