首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在EWS MAPI中获取电子邮件的发件人?

在EWS MAPI中获取电子邮件的发件人,可以通过以下步骤实现:

  1. 首先,需要使用EWS(Exchange Web Services)API连接到Exchange服务器。EWS是一种基于SOAP的协议,用于访问Exchange服务器上的邮件数据。
  2. 使用EWS API,获取指定邮箱中的邮件。可以使用FindItem操作来搜索邮件,并使用ItemId来获取邮件的详细信息。
  3. 获取邮件的详细信息后,可以使用From属性来获取发件人的信息。From属性包含发件人的电子邮件地址和显示名称。
  4. 最后,可以使用发件人的电子邮件地址和显示名称来进行后续操作,例如将发件人的信息存储到数据库中,或者将发件人的信息作为参数传递给其他函数。

以下是一个使用EWS API获取发件人信息的示例代码:

代码语言:csharp
复制
using Microsoft.Exchange.WebServices.Data;

// 创建Exchange服务器的连接
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
service.Credentials = new WebCredentials("username", "password", "domain");
service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");

// 搜索邮件
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, new ItemView(10));

// 遍历邮件
foreach (Item item in findResults.Items)
{
    // 获取邮件的详细信息
    EmailMessage email = EmailMessage.Bind(service, item.Id);

    // 获取发件人信息
    EmailAddress from = email.From;

    // 输出发件人的电子邮件地址和显示名称
    Console.WriteLine("From: " + from.Address + " (" + from.Name + ")");
}

需要注意的是,上述示例代码中使用的是Office 365的EWS API,如果使用其他类型的Exchange服务器,则需要根据实际情况进行修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Exchange漏洞攻略来啦!!

3、SPNs名称查询 SPN(Service Principal Name),是Kerberos认证不可缺少,每一个启用Kerberos认证服务都拥有一个SPN,文件共享服务SPN为cifs/.../Exchange.asmx /EWS/Services.wsdl /EWS/ /OAB/ /Mapi API接口 说明 /autodiscover 自 Exchange Server 2007 开始推出一项自动服务...但是在 Exchange2013 默认没有启用 MAPI OVER HTTP ,而是使用 RPC OVER HTTP ,需要手动开启,而 Exchange2016 默认启用 MAPI OVER HTTP...该工具实现了将获取 Net-NTLM 哈希重放到真实 Exchange 服务器 EWS 接口进行认证,通过 EWS 获取用户邮箱邮件信息、附件下载、创建转发规则、查询GAL等。...对于Exchange邮箱系统,拥有Domain admin权限域用户,可通过outlook直接指定发件人,伪造任意发件人发送邮件。伪造邮件方式十分简单,且邮件头无法显示真实IP。

6.5K20

针对exchange攻击方式

MAPI 于Exchange 2013 SP1和Outlook 2013 SP1被提出一种新outlook与exchange交互传输协议。...该服务目的是简化用户登录流程:用户只需要输入自己电子邮件地址和密码,就能够通过Autodiscover服务获取运行客户端应用程序所需配置信息 该服务运行在客户端访问服务器上。...GAL GAL即全局地址表(global address list) 记录了域中用户基本信息与其邮箱地址,以形成域用户与邮箱用户之间关联。 在渗透可以通过GAL来获取所有邮箱地址。...、日历、任务和联系人等 /ecp # Exchange 管理中心,管理员用于管理组织Exchange Web控制台 /Mapi...点击此处权限,来到以下界面,这里默认即 所有用户(everyone) 对此文件夹权限,我这里是把权限给很高 实战也可能会遇到用户A对用户B收件箱有读写权限情况,所以我们在获取用户A凭据后可以进而读取用户

3.6K20
  • 网藤能力中心 | 深入Exchange Server在网络渗透下利用方法

    在Outlook中使用RPC-over-HTTP连接方式连接Exchange(在协议显示为RPC/HTTP): MAPIMAPI-over-HTTP,MAPI/HTTP) 一种Outlook...除此之外,有时候通过其他一些方法同样可以帮助探测确认Exchange服务,发现OWA、EWS接口、自动发现服务、DNS域名记录等等,Exchange是一个庞大复杂组件服务,各种配置信息和公开服务都可以帮助我们进行信息收集...3.获取组织内所有邮箱用户列表 利用已掌握合法邮箱凭证,可以利用OWA或者EWS接口查询获取到Exchange组织中所有的邮箱用户邮件地址,即全局地址列表。...Exchange服务器提供RPC/HTTP、MAPI/HTTP、EWS等接口,都是基于HTTP构建上层协议,其登陆方式通过NTLM进行,因此,NTLM中继同样适用与Exchange。...该工具实现了将获取Net-NTLM哈希重放到真实Exchange服务器EWS接口进行认证,通过EWS获取用户邮箱邮件信息、附件下载、创建转发规则、查询GAL等。

    4.4K20

    何在keras添加自己优化器(adam等)

    2、找到keras在tensorflow下根目录 需要特别注意是找到keras在tensorflow下根目录而不是找到keras根目录。...一般来说,完成tensorflow以及keras配置后即可在tensorflow目录下python目录中找到keras目录,以GPU为例keras在tensorflow下根目录为C:\ProgramData...找到optimizers.pyadam等优化器类并在后面添加自己优化器类 以本文来说,我在第718行添加如下代码 @tf_export('keras.optimizers.adamsss') class...# 传入优化器名称: 默认参数将被采用 model.compile(loss=’mean_squared_error’, optimizer=’sgd’) 以上这篇如何在keras添加自己优化器...(adam等)就是小编分享给大家全部内容了,希望能给大家一个参考。

    45K30

    何在 React 获取点击元素 ID?

    在 React 应用,我们经常需要根据用户点击事件来执行相应操作。在某些情况下,我们需要获取用户点击元素唯一标识符(ID),以便进行进一步处理。...本文将详细介绍如何在 React 获取点击元素 ID,并提供示例代码帮助你理解和应用这个功能。使用事件处理函数在 React ,我们可以使用事件处理函数来获取点击元素信息。...使用 ref除了事件处理函数,我们还可以使用 ref 来获取点击元素信息。通过创建一个引用(ref),可以在组件引用具体 DOM 元素,并访问其属性和方法。...在事件处理函数 handleClick ,我们可以通过 btnRef.current.id 来获取点击元素 ID。当用户点击按钮时,handleClick 函数会打印出点击元素 ID。...结论本文详细介绍了在 React 获取点击元素 ID 两种方法:使用事件处理函数和使用 ref。

    3.4K30

    何在onCreate获取View高度和宽度

    何在onCreate获取View高度和宽度 在开发过程中经常需要获取到View宽和高,可以通过View.getWidth()和View.getHeight()来得到宽高。...然而新手们经常在onCreate方法中直接调用上面两个方法得到值是0! 这是为什么呢? 因为View绘制是通过两个遍历来完成,一个measure过程,一个layout过程。...而这一切是发生在onCreate方法之后。所以在onCreate中直接使用View.getWidth()和View.getHeight()是无法得到正确。...那应该怎么onCreate获取View宽高呢?...开发者可以通过View.post()方法来获取到View宽高,该方法传递一个Runnable参数,然后将其添加到消息队列,最后在UI线程执行。

    5.3K20

    何在 WordPress 获取最新被评论文章列表

    我之前「WordPress 文章查询教程6:如何使用排序相关参数」详细介绍了文章查询排序参数,其中介绍可以通过评论数进行排序: $query = new WP_Query( array(...'orderby' => 'comment_count' ) ); 但是需求总是不停变化,现在又有了新需求,获取最新被评论文章列表,意思就是某篇文章刚被评论,它就排到最前面,在某些社交需求网站可能需要用到...但是使用 SQL 来实现可能就会造成 API 不一致问题,无法直接使用 WP_Query 进行各种操作,所以最好是通过 posts_clauses 接口实现让 WP_Query 排序参数支持 comment_date...$order}"; } return $clauses; }, 10, 2); 上面的代码简单解释一下,就是通过 posts_clauses 接口实现文章表和评论表连表,然后通过评论时间进行排序获取最新被评论文章列表...当然你也可以不需要了解和使用上面的代码,因为 WPJAM Basic 已经整合,你只需要知道最后可以通过下面简单方式就能够获取最新被评论文章列表: $query = new WP_Query( array

    1.5K30

    Exchange邮箱地址导出

    在渗透应用 项目介绍 https://github.com/dafthack/MailSniper 项目使用 在外网渗透测试我们经常会优先执行一个侦察踩点,在这个阶段我们可能会获得某一个组织一些电子邮件或用户名...Brian Fehrman在OWA发现了一些非常有趣东西,其中一个名为FindPeople函数允许你通过一个请求就可以取回整个GAL,遗憾是该功能仅在Exchange 2013版实现,在测试利用...FindPeople函数Get-GlobalAddressList能够在10秒钟内从远程OWA门户获取4282个电子邮件地址,且OWA"FindPeople"方法要求您使用PowerShell Version...\userlist.txt -Password Fall2016 -Threads 15 -OutFile ews-sprayed-creds.txt 在上面的测试,我注意到EWS密码喷涂方法明显更快...,Invoke-PasswordSprayOWA和使用15个线程Burp Intruder都用了大约1小时45分钟来完成对10,000个用户喷涂,而向EWS喷洒同样用户名单只用了9分28秒

    1.3K10

    域内横向移动分析及防御

    (Win95及之后) 客户端程序对象能够对网络另一台计算机上服务器程序对象发送请求 执行流程同样: 通过ipc$连接远程计算机 执行命令 1、通过本地DCOM执行命令 获取DCOM程序列表: //...每种资源分配了不同SPN 1、SPN扫描 因为域环境每台服务器都需要在Kerberos身份验证服务中注册SPN,所以攻击者会直接向域控制器发送查询请求,获取其需要服务SPN,从而知晓其需要使用服务资源在哪台机器上...、Exchange邮件服务器安全防范 电子邮件可能包含大量源码、企业内部通讯录、明文密码、敏感业务登陆地址及可以从外网访问内网V**账号密码等信息 Exchange支持PowerShell对其进行本地或远程操作...邮箱服务器、客户端访问服务器、集线传输服务器是核心角色,只要部署这三个角色就能提供基本电子邮件处理功能,且这三个可以部署在同一台主机上。...Center):Exchange管理中心,后台 Outlook Anywhere(RPC-over-HTTP,RPC/HTTP) MAPIMAPI-over-HTTP,MAPI/HTTP) Exchange

    1.6K11

    攻击者部署后门,窃取Exchange电子邮件

    近日,Mandiant 安全研究人员发现一个新、异常隐蔽高级持续性威胁(APT)组织正在入侵企业网络,并试图窃取参与企业交易(并购)员工 Exchange(内部和在线)电子邮件。...在每一个 UNC3524 受害者环境,攻击者都会针对一个子集邮箱,集中其注意力在执行团队和从事企业发展、兼并和收购员工或 IT 安全人员身上。...获取权限后,立刻窃取数据 Mandiant 表示,一旦 UNC3524 成功获得受害者邮件环境特权凭证后,就立刻开始向企业内部 Microsoft Exchange 或 Microsoft 365...在获得访问权并部署其后门后,UNC3524 获得了受害者邮件环境特权凭证,并开始通过 Exchange 网络服务(EWS)API请求,瞄准企业内部Microsoft Exchange或Microsoft...值得注意是,UNC3524 组织通常窃取执行团队和从事企业发展、并购或 IT员工所有电子邮件,而不是挑选感兴趣电子邮件

    95610

    何在代码获取Java应用当前版本号?

    最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...从配置文件读取 Maven在构建项目时可以通过资源插件将构建属性即pom.xml属性注入到指定资源文件,具体操作为: ... 恰好spring-boot-starter-parent已经设置了这种方式。...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...spring-boot-version", "time" : { "epochSecond" : 1620664643, "nano" : 591000000 } } 总结 今天介绍了几种从通过API获取项目构建版本信息方法

    3.2K20

    何在代码获取Java应用当前版本号?

    最近需要在项目中获取项目的版本号,最笨方法莫过于硬编码一个版本号,当然我也是这么干。不过闲下来时候突发奇想Spring Boot项目中pom.xml定义版本号能不能通过API获得呢?...从配置文件读取 Maven在构建项目时可以通过资源插件将构建属性即pom.xml属性注入到指定资源文件,具体操作为: ... 恰好spring-boot-starter-parent已经设置了这种方式。...Spring Boot提供 Spring Boot其实已经内置了获取项目构建信息自动配置ProjectInfoAutoConfiguration,它包含一个条件BeanBuildProperties:...spring-boot-version", "time" : { "epochSecond" : 1620664643, "nano" : 591000000 } } 总结 今天介绍了几种从通过API获取项目构建版本信息方法

    5.9K20

    Outlook真的安全?一条恶意规则远程攻陷你工作站!

    只要目标设备开启Outlook并认证登录,那么我们在不需要获取登录凭证情况下,就能拿下已经开启会话。 这里PoC工具名为XRulez,这是个Windows可执行程序。...在未来版本,我们将会添加更多条件和操作,当前POC可以配置以下设置: 触发条件:邮件标题关键词 执行操作:启动应用程序、永久删除电子邮件、终止规则 规则触发时,如果payload应用无法访问,...root@kali:/share# ls payload.exe 2.XRulez.exe已经被上传到目标设备上了,并且在Windows命令行带“-l”参数执行POC,这样将会显示安装在系统上MAPI...MAPI允许客户端程序具备(电子邮件)通信功能,或者通过调用MAPI子系统例程某些邮件服务器接口为基础来支持邮件传输,而MAPI则被设计为独立于协议,它经常被用于MAPI/RFC,一个Outlook...(来源:维基百科) MAPI可提供非托管式地访问一个用户邮箱文件夹和表格功能,它可以做各种有趣事情,比如说阅读电子邮件、修改预约以及创建规则!

    2.9K70

    何在 MSBuild 项目文件 csproj 获取绝对路径

    通常我们能够在 csproj 文件仅仅使用相对路径就完成大多数编译任务。但是有些外部命令执行需要用到绝对路径,或者对此外部工具来说,相对路径具有不同含义。...本文介绍如何在项目文件 csproj 中将一个相对路径转换为绝对路径。...在 MSBuild 4.0 ,可以在 csproj 编写调用 PowerShell 脚本代码,于是获取一个路径绝对路径就非常简单: 1 [System.IO.Path]::GetFullPath...('$(WalterlvRelativePath)') 具体到 csproj 代码,是这样: 1 2 3 4 5 6 ...你可以阅读我其他篇博客了解到 $(OutputPath) 其实最终都会是相对路径: 项目文件已知属性(知道了这些,就不会随便在 csproj 写死常量啦) - walterlv 如何更精准地设置

    27630

    python接收邮件

    接收邮件有两种协议:POP3和IMAP POP3协议允许电子邮件客户端下载服务器上邮件,但是在客户端上操作(移动邮件、标记已读等)不会反馈到服务器上 IMAP协议提供邮件服务器和电子邮件客户端之间双向通信...,任何在客户端上做改变都会同步到服务器上。...IMAP协议提供摘要浏览功能可以让我们在阅读完所有的邮件信息(到达时间、主题、发件人、大小等)后才做出是否下载决定。...此外,IMAP协议能更好地支持在多个不同设备上随时访问新邮件功能 使用POP3协议接收邮件 下面举个例子来演示使用POP3接收邮件过程 在这个例子,你需要把邮箱地址、密码、服务器pop3地址更换成自己使用邮箱地址...() print(mails) #获取最新一封邮件(序号最大),邮件索引从1开始计数!

    2.1K20
    领券