首页
学习
活动
专区
工具
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.7K20

针对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.7K20
  • 网藤能力中心 | 深入Exchange Server在网络渗透下的利用方法

    在Outlook中使用RPC-over-HTTP的连接方式连接Exchange(在协议中显示为RPC/HTTP): MAPI(MAPI-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

    如何在 React 中获取点击元素的 ID?

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

    3.5K30

    如何在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

    如何在JavaScript中获取单选按钮组的值?

    在实际业务开发中,我们常常需要获取用户选择的单选按钮的值,比如用户在注册时选择性别、问卷调查时选择答案等。今天,我们就来聊聊如何在JavaScript中获取单选按钮组的值。...id="genderf" name="gender" value="female" checked /> 女 在这个例子中,...获取单选按钮组的值 在JavaScript中,我们可以使用document.querySelector方法来获取被选中的单选按钮,然后通过它的value属性来获取对应的值。....value:通过value属性获取该单选按钮的值。 所以,当我们运行这段代码时,selectedGender的值会是“female”,因为默认情况下“女”按钮是选中的。...结束 在业务开发中,使用JavaScript来获取单选按钮组的值非常简单。我们只需要利用document.querySelector方法来获取被选中的单选按钮,然后通过value属性来获取其值。

    18410

    如何在 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

    域内横向移动分析及防御

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

    1.6K11

    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

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

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

    96810

    如何在代码中获取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获取项目构建版本信息的方法

    6.1K20

    你的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 如何更精准地设置

    29230

    python接收邮件

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

    2.1K20
    领券