未找到

未发布 Oracle企业可视化解决方案AutoVue系列产品更新至v21.0.1!
by Harriet666 keys 分享 1489993142405

Oracle发布了最新的企业可视化解决方案AutoVue系列产品v21.0.1版本。(21产品系列中的一个分支版本)。新版本包括了在不支持Java applet *的浏览器中使用AutoVue的能力,并为核心的CAD格式提供支持。

*由于浏览器的已知问题,不支持Microsoft Edge。

AutoVue系列产品包括:AutoVue 3D Professional AdvancedAutoVue Electro-Mechanical ProfessionalAutoVue EDAAutoVue OfficeAutoVue 2D Professional

未发布 VMProtect用户手册:专用术语
by Harriet666 keys 分享 1521622426288
VMProtect是一款虚拟机保护软件,是目前最为流行的保护壳之一。VMProtect将保护后的代码放到虚拟机中运行,这将使分析反编译后的代码和破解变得极为困难。除了代码保护,VMProtect还可以生成和验证序列号,设置过期时间,限制免费更新等等。

VMProtect最新试用版下载>>>


 
如果您不知道相应主题的专用术语,则无法有效使用该工具。本篇教程解释了VMProtect中使用的术语。一些术语可能会提供与传统术语不同的含义。
 
字节码 - 将实际处理器的命令转码为虚拟机命令后收到的代码。
 
虚拟化 - 一种将应用程序的部分可执行代码转换为具有命令系统,体系结构和操作逻辑的虚拟机命令的过程,这些命令对潜在的黑客来说是未知的。代码的虚拟化片段由虚拟机的解释器执行,而不将其转换为物理处理器的机器语言代码。通常,虚拟化片段的反向工程归结为建立一个具有与虚拟机模拟的处理器相同架构的反汇编程序,并分析由此产生的反汇编代码。
 
虚拟机 - 在受保护的应用程序中直接执行字节码的程序代码。
 
水印 - 每个字节的用户数组都有一个唯一的标识,可以明确标识该程序被黑客复制的合法所有者。
 
突变 - 用一个模拟或一组命令代替一个原始命令产生相同的结果。
 
混淆技术 - 一组旨在使程序代码分析复杂化的方法和技术。根据编程语言写入受保护程序,使用不同的混淆类型。写在解释语言(的Perl,PHP等)的应用程序混淆通过修改源代码所做的:评论被删除,变量给出了毫无意义的名称,字符串常量被加密等等。通过转换由虚拟机处理的字节码来执行Java / .NET应用程序的混淆。编译程序的混淆依赖于修改机器语言代码:混淆器添加各种“垃圾”命令,“死代码”,随机跳转。另外,原始命令会发生变化,部分操作会移至堆栈,并进行了一些结构(或不太常数学的)转换。对混淆的代码片段进行反向工程会尝试将片段恢复到其原始状态,只要正确完成混淆处理,这是一项耗时的任务。
 
保护器 - 旨在保护其他程序免遭黑客攻击的软件。现在的大多数保护器都不会修改应用程序的源代码,而是打包或加密应用程序。主要重点放在保护解包/解密程序或程序上。
 
入口点 - 加载到内存中的应用程序的初始地址执行从开始。
 
压缩 - 通过使用非典型算法压缩程序和/或库的可执行文件来保护程序代码的一种方法。受保护的代码片段由封装器压缩,并在应用程序执行时在用户端完全或部分解压缩。
 
加密 - 通过强大的加密算法来保护应用程序代码的一部分。受加密保护的软件要求最终用户输入激活码,以消除开发者为未注册版本的程序设置的限制。

试用、下载、了解更多产品信息请点击"咨询在线客服"  

未发布 LEADTOOLS的新功能Document Composer可以让你在多个文件中创建文档
by Harriet666 keys 分享 1492417840533

作为LEADTOOLS v19更新的一部分,新版本向Document Viewer添加了一个新的虚拟文档功能。 LEADTOOLS Document Composer界面可以轻松地从任意数量的页面以及来自多个源文档的文件中创建虚拟文档。你可以在查看该文档时进行修改,并可以使用代码添加或删除页面,也可以使用拖放来进行交互式操作。由Document Composer创建的虚拟文档可以保存在服务器上,与多个用户共享,并导出为任何格式。

从任何源文件中构建或撰写文档意味着什么?想象一下,房地产经纪人准备与客户会面,并想要准备几个房产相关的打印资料。他的计算机或云盘上收集了一些文件:PDF格式的列表、DOCX格式的列表、谷歌地图的截图,甚至是访问其他客户时的一些个人照片。房地产经纪人可以使用LEADTOOLS Document Composer从每个源文件中单击并拖动所需的页面并创建新的虚拟文档,然后将其打印出来参与会议,也可以将虚拟文档导出为新的PDF并通过电子邮件发送。

如果你想要尝试该功能,请查看Document Composer演示应用程序,或直接下载最新的LEADTOOLS安装程序!

有用(0)

未发布 GIS软件开发工具包TatukGIS Developer Kernel更新至v11.5,修复紧急问题
by Harriet666 keys 分享 1498556827991
GIS定制开发首选控件,帮您轻松搞定高效、优质、实惠的GIS解决方案

TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。众所周知,构建一个庞大的地理信息系统需要花费大量的金钱和人力,而TatukGIS却是同类产品中性价比最高的控件,TatukGIS Developer Kernel DK因其功能强大,价格适中,已被超过 50个国家的个人、公司、以及政府等客户用来实现其地理信息系统解决方案。根据不同地首选开发环境,本产品分别以五个独立产品的形式提供(即VCL、.NET/WPF、ActiveX、Compact Framework和ASP.NET),各个产品使用相同的框架、应用程序编程接口(API)技术。
 
v11.5更新内容:
  • 修复Winforms/WPF SharpDX渲染器内存泄漏的关键问题。
  • 修复了VCL Hi-DPI相关问题(比如RAD Studio 10.1 Berlin之前版本的低分辨率对话框的尺寸不正确)。[DK-9287],[DK-9278]
  • WinForms/WPF对话框加入阿拉伯语和希伯来语翻译。 [DK-9255]
  • WinForms/WPF是Hi-DPI aware。 [DK-9277]
  • 其他修复。
未发布 Google开源了Abseil,为C++和Python开发提供支持
by Harriet666 keys 分享 1507530171137
Google公开了其项目内部使用的一系列C++库,随后还会公开其Python库。

Abseil已在Google历经十多年的开发,它的目的是为Google编程人员在各种项目上的工作需求提供支持,这些项目包括Protocol Buffers、gRPC和TensorFlow等。Google评价Abseil为:
  • 它是从Google内部代码块中抽取出来的一系列最基础的软件库。作为基本的组成部分,这些软件库支撑了几乎全部Google在运行的项目。以前这些API是零零散散地嵌入在Google的大部分开源项目中,现在我们将它们规整在一起,形成这样一个全面的项目。
  • Abseil是Google代码库的最基本构建模块,其代码经过了生产环节测试,此后还会继续得到完全的维护。

最初,Abseil提供的抽象并非C++ 14或C++ 17的组成部分,但最终它们已被添加到C++标准中。例如,Google提供一个称为StringPiece的类型,随后C++ 17也添加了一个称为std::string_view的相近类型。为了与新的C++ 17类型具有一致的API,Google将StringPiece重构为absl::string_view。从底层机制上看,如果开发人员正在使用的是C++ 17,那么Abseil的string_view默认为标准实现;如果开发人员正在使用的是C++ 17以前的版本,那么string_view默认为Google的实现。
 
使用Abseil的优点在于可以访问一些目前依然尚未添加到标准中的C++特性,并且一旦这些特性被添加到C++标准中,Google保证会重构这些特性为默认使用标准实现。Google鼓励开发人员使用Abseil,并提及已有超过两亿五千万行的C++代码使用它,并且几乎所有从头开始构建的项目都使用了它。这意味着,Abseil已被Google广为使用,并出于与项目需求同步的考虑而得以频繁维护。
 
Abseil中包括如下的库:
  • base:初始化,以及其它的基础代码。 
  • algorithm:对C++的库的补充,并为原算法提供了基于容器的版本。 
  • container:提供了更多的STL类型容器。 
  • debugging:用于检查泄漏的调试库。 
  • memory:包括兼容C++ 11版本的std::make_unique()和内存管理。 
  • meta:包括兼容C++ 11版本的类型检查,在C++ 14和C++ 17版本的C++ 库中可用。 
  • numeric:兼容C++ 11的128位整数。 
  • strings:各种字符串工具。 
  • synchronization:并发原语和同步抽象。 
  • time:抽象了绝对时间点操作和时区操作。 
  • types:非容器工具的类型。 
Abseil的代码采用Apache许可,已发布在GitHub上。其Python版本的软件库将随后发布。
更多资讯>>>

未发布 教你如何恢复iPhone上删除的数据及iCloud和iTunes备份
by Harriet666 keys 分享 1496741895392
因为iPhone没有恢复选项,因此当你误删iPhone上的消息、照片或联系人时都是灾难性的。但现在你无需担心!只要你使用的是Apple设备,iSkysoft Toolbox for iOS(iPhone数据恢复应用程序)可以帮你轻松地恢复已删除的数据。该数据检索器可以在Mac OS和Windows上运行,除了iOS设备之外,还可以从iCloud,iTunes恢复文件。
 
iSkysoft工具箱 - iOS数据恢复使你能够恢复在各种情况下丢失的数据:被盗、锁定设备、忘记密码、出厂设置、意外删除、iOS系统崩溃等。
 
主要特征:
  • 从iOS设备中直接恢复数据
  • 从iTunes备份中恢复数据
  • 从iCloud备份中恢复数据
  • 支持iOS 10和最新的iPhone7

在本文中,我们将教你如何使用iSkysoft Toolbox for iOS恢复iPhone重要数据的具体方法,只需几个简单的步骤。

方法一:从iPhone直接恢复数据

请注意,在你意识到数据丢失后,你必须立即停止使用该设备。数据丢失后的任何进程都可以覆盖已删除或丢失的数据,这可能会导致数据永久丢失。

步骤1:在计算机上安装最新的iTunes

在运行iSkysoft Toolbox之前,你必须在计算机上安装最新版本的iTunes。
接下来,禁用iTunes自动同步:启动iTunes并找到“首选项”菜单>单击“设备”选项卡>选中“防止iPod,iPhone和iPad自动同步”选项。
现在可以在Windows PC或Mac上退出iTunes。

步骤2:将iOS设备连接到计算机

在PC上下载并安装iSkysoft Toolbox iOS。使用数据线连接iPhone与电脑连接。点击iPhone上的“信任这台电脑”。在设备连接后,点击窗口左侧的“数据恢复”。跳转到“从iOS设备恢复”窗口。

步骤3:扫描iPhone丢失数据

在“从iOS设备恢复”的主窗口中,有2个选项:从设备中删除数据和设备上的现有数据。你可以选择任意一个进行扫描。
点击“开始扫描”。扫描可能需要几分钟的时间,具体取决于iOS设备上的数据量。在扫描过程中,如果你看到你要查找的数据在那里,请单击“暂停”停止该过程。

步骤4: - 预览扫描数据

在扫描过程完成后生成并显示结果。你可以在左侧选择文件类型,然后预览找到的数据。你可以使用搜索功能直接查找所需的文件。

步骤5:从你的iPhone恢复数据

勾选复选框以选择要恢复的数据。接下来,点击当前窗口底部的“还原”。默认情况下,你选择的数据将保存到你的计算机。信息、联系人和笔记将具有以下选项:导出到计算机并还原到设备。
 

方法二:从iTunes备份中恢复数据

步骤1:选择“从iTunes备份文件中恢复”

如果你在丢失数据之前将你的iPhone备份到了iTunes中,那么你可以尝试从iTunes备份文件中恢复文件。启动iSkysoft工具箱 - iOS数据恢复,单击“从iTunes备份文件中恢复”。


步骤2:选择iTunes备份文件进行扫描

默认情况下,所有iTunes备份文件将被自动检测并显示。 选择包含你需要的数据,然后单击“开始扫描”。

步骤3:从iTunes备份文件中预览和恢复数据iTunes备份文件

在结果页面中提取并显示为类别。选择所需的,然后单击“导出到Mac”。默认情况下,数据将再次保存到计算机。如果你正在恢复联系人、短信和笔记,则可以通过USB电缆将iOS设备与计算机连接,然后将其还原到设备。
 

方法三:从iCloud备份中恢复数据

步骤1:选择“从iCloud备份文件中恢复”

这种方法只有在你丢失数据前将iPhone、iPad和iPod touch备份到iCloud之前才有效。启动iSkysoft工具箱 - iOS数据恢复,然后单击“从iCloud备份文件中恢复”。

步骤2:登录iCloud

登录到你的iCloud帐户。不要担心帐户的安全性,软件根本不会收集你的个人信息。

步骤3:下载iCloud备份文件

登录iCloud后,所有的iCloud备份文件将被检测并显示在主窗口中。选择要从中恢复数据的数据,然后单击“下载”按钮。
 
在下一个新窗口中,系统会要求你选择要下载的文件类型。与下载所有文件相比,它将缩短下载目标文件类型的下载时间。下载后,点击“下一步”。

步骤4:从iCloud备份文件中预览和恢复数据

扫描后,你可以看到所有数据以类别显示。你可以选择任何数据进行预览,然后再执行恢复。
 
总结:
总而言之,iSkysoft Toolbox for iOS是一种用于从iPhone、iCloud和iTunes备份中恢复已删除的文件和数据的轻便、快速、易于使用的解决方案。
阅读原文>>>


未发布 GIS软件开发工具包TatukGIS Developer Kernel v11.6发布丨附下载
by Harriet666 keys 分享 1499072156533
GIS定制开发首选控件,帮您轻松搞定高效、优质、实惠的GIS解决方案

TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。众所周知,构建一个庞大的地理信息系统需要花费大量的金钱和人力,而TatukGIS却是同类产品中性价比最高的控件,TatukGIS Developer Kernel DK因其功能强大,价格适中,已被超过 50个国家的个人、公司、以及政府等客户用来实现其地理信息系统解决方案。根据不同地首选开发环境,本产品分别以五个独立产品的形式提供(即VCL、.NET/WPF、ActiveX、Compact Framework和ASP.NET),各个产品使用相同的框架、应用程序编程接口(API)技术。
 
TatukGIS Developer Kernel v11.6最新版点击下载>>>
 
TatukGIS Developer Kernel v11.6更新内容
此版本为移动平台和FMX带来了很多改进和GUI修复以及一些新功能。
  • 等时线分析。[DK-9208]
  • 添加Concave Hull。[DK-9217]
  • Convex Hull速度提升。[DK-9324]
  • DK.FMX对话框以匹配VCL和Winforms。[DK-9075]。
  • 引入属性TGIS_ViewerWndHelper.DelayedUpdate延迟更新的细粒度控制。[DK-9301]
  • 图例未打印。[DK-9360] 
  • 问题是特定于DirectX渲染。临时解决方法是将渲染器设置为GDI32(仅限VCL)或GDI +(VCL和WinForms)。请参阅使用除默认值之外的渲染器。
  • 改进了Legend属性表单及其子表单在速度,外观和稳定性方面。
  • 一些程序名称更改,如TGIS_ContourGenerator.Import→Generate[DK-6369]
  • PrintClipboard现在支持DK.FMX。[DK-9418]
  • 提供独立SVG符号库编译器。
  • 其他问题修复。

试用、下载、了解更多产品信息请点击"咨询在线客服"   
未发布 MailBee.NET Objects接收电子邮件(POP3)教程三:POP3认证
by Harriet666 keys 分享 1500972453843
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
 
本文主要介绍了POP3认证的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
要登录POP3帐户,你必须提供有效的帐户名称(也称为用户名,登录名等)和密码。
C#
Pop3 pop = new Pop3();
pop.Connect("mail.domain.com");
pop.Login("jdoe", "secret");

VB.NET
Dim pop As New Pop3() 
pop.Connect("mail.domain.com")
pop.Login("jdoe", "secret")
 
某些服务器要求帐号名称包含域名部分(例如jdoe@domain.com)。
许多POP3服务器支持多种认证机制来进行安全认证。默认情况下会使用更安全的身份验证方法。你可以使用Login方法的其他重载来覆盖此行为(如果服务器错误地执行某些身份验证方法)。例如,上面的代码强制MailBee仅尝试APOP方法(APOP是特定于POP3协议的安全认证方法,由许多POP3服务器支持):
C#
Pop3 pop = new Pop3();
pop.Connect("mail.domain.com");
pop.Login("jdoe", "secret", AuthenticationMethods.Apop);

VB.NET
Dim pop As New Pop3() 
pop.Connect("mail.domain.com")
pop.Login("jdoe", "secret", AuthenticationMethods.Apop)
 
或者,你可以强制MailBee首先尝试简单的身份验证方法,并且只有在服务器不支持简单的方法时才使用安全方法。下面的示例代码使用最简单的身份验证方法进行登录。如果服务器支持基本的明文USER / PASS认证则会使用它。但是,如果USER / PASS方法未启用(假设服务器仅支持安全的SASL NTLM),那么MailBee将使用该方法。
C#
pop.Login("jdoe", "secret", AuthenticationMethods.Auto, AuthenticationOptions.PreferSimpleMethods, null);

VB.NET
pop.Login("jdoe", "secret", AuthenticationMethods.Auto, AuthenticationOptions.PreferSimpleMethods, Nothing)

MailBee还支持Windows集成身份验证(使用当前记录的Windows用户的凭据登录)。如下所示:
C#
pop.Login(null, null, AuthenticationMethods.SaslNtlm);

VB.NET
pop.Login(Nothing, Nothing, AuthenticationMethods.SaslNtlm)
 
但是,如果你正在开发在匿名IIS或ASP.NET用户中运行的ASP.NET应用程序(因为当前记录的用户将是IIS用户而不是使用该应用程序的人员),则无法使用它。
未发布 轻松审计代码安全性,Windows 10有妙招
by Harriet666 keys 分享 1503998911618
如果你是软件开发人员,又希望自己开发的软件安全性高一点,那么当前的Windows 10企业内部预览版(10.0.16253)中就有一个功能可以做到。
 
它的位置在“设置 – > Windows Defender – > Windows Defender安全中心 – >应用程序和浏览器控制 – >漏洞保护设置”中,你可以为整个系统或特定程序启用自定义漏洞利用设置。其中有很多不同的保护特性并且许多都可以在审计模式下打开。在审计模式下,它不是在出现情况时终止进程,而是将事件写入事件日志。对于管理员,这就意味着其会允许软件继续运行,同时能够使我们意识到这一情况是何时发生的。对于希望通过了解这些情况以此来改进产品的人来说,它其实是提供了一个启用安全功能的附加好处,即无需重新编译(在某些情况下),就能告诉你确切的程序代码在当它在运行时遇到问题的位置。在版本10.0.16253中,可以进行审计的保护特性包括:
 
任意代码保护 - 防止非图像支持的执行代码和代码页修改(例如VirtualAlloc / VirtualProtect创建/修改的代码)
阻止低完整性图像
阻止远程图像
阻止不受信任的字体
代码完整性守护者
禁用Win32k系统调用
不允许子进程
导出地址过滤 - 将功能修补到另一个功能的一个常见方法中的一个步骤
导入地址过滤 - 将功能修补到另一个功能的一个常见方法中的一个步骤
模拟执行
验证API调用(CallerCheck)
验证图像依赖完整性
验证堆栈完整性
 
要充分利用此功能,我们需要安装Windows Performance Toolkit。它是Windows SDK安装程序的安装选项之一。当您启用了您感兴趣的设置后,打开管理命令提示符并浏览到Windows Performance Toolkit目录(通常为Program Files(x86) Windows Kits  {Version}  Windows Performance Toolkit)。您可以通过运行以下两个命令(在替换文件名所需的任何路径之后)启动并开始收集上述漏洞保护设置的跟踪以及解析堆栈跟踪所需的数据:
xperf - “PROC_THREAD + LOADER”-f“wdeg_klogger.etl”
 
xperf -start“WDEG” - “Microsoft-Windows-Security-Mitigations:0xFFFFFFFFFFFFFF:0xFF:'stack'”-f“wdeg_unmerged.etl”
在您运行任何想要收集的方案之后,您可以停止跟踪并将数据与以下内容合并(再次替换文件名所需的任何路径):
xperf -stop -stop“WDEG”-d“wdeg_merged.etl”
 
然后,您可以删除创建的前两个文件,因为此时您将拥有第三个所需的所有数据。您可以在Windows Performance Analyzer(WPA)中打开生成的etl文件,并查看数据。
 
您可以使用wpaPreset文件扩展名保存它,在WPA中加载数据,转到我的预设(在WPA的较新版本中的文件 – >窗口 – >我的存在),选择导入,浏览到保存预设的任何地方,选择它,并双击它以显示视图。另外,您还需要加载符号,以充分利用这一点。您可以在WPA中在File-> Configure Symbols下设置符号; 您需要将其指向msdl.microsoft.com/download/symbols上的Microsoft符号服务器以及您的符号服务器(或您没有符号服务器设置的符号文件的位置)。您可以在加载跟踪时自动配置WPA加载符号,但也可以通过转到文件 – >加载符号来手动加载符号。一旦完成,您将能够轻松地查看堆栈跟踪。它就会像下面这样:
 
以下是在创建上述过程中我为x64控制台应用程序编译的示例代码:
#include #include using namespace std;void* CreateCodeInVirtualMemory(BOOL writable)
{ BYTE code[3] = { 0x33, 0xc0, 0xc3 }; LPVOID result = VirtualAlloc(NULL, sizeof(code), MEM_COMMIT | MEM_RESERVE, writable ? PAGE_EXECUTE_READWRITE : PAGE_READWRITE); if (result)
{
  memcpy(result, code, sizeof(code));
} else cout << "VirtualAllocEx failed with error " << GetLastError() << endl; return result;
}void CreateCodeInVirtualMemoryAndExecute(BOOL useWritableMemory)
{ LPTHREAD_START_ROUTINE addr = (LPTHREAD_START_ROUTINE)CreateCodeInVirtualMemory(useWritableMemory); if (addr)
{  DWORD result = addr(NULL);
  cout << "Code at 0x" << hex << (void*)addr << " returned " << result << endl;
} else cout << "NULL address was not executed" << endl;
}void ExecuteIllegalMemory()
{
CreateCodeInVirtualMemoryAndExecute(FALSE);
} 
void PrintOptions()
{
cout << "Enter one of the following options:" << endl;
cout << "1 - Execute Memory Not Marked As Executable" << endl;
cout << "2 - Create Code in Virtual Memory" << endl;
cout << "3 - Create Code in Virtual Memory and Execute" << endl;
cout << "0 - Exit" << endl;
 
}void DecisionLoop()
{ while (true)
{  int selection;
  PrintOptions();
  cin >> selection;  switch (selection)
  {   case 0:    return;   case 1:
    ExecuteIllegalMemory();    break;   case 2:
    CreateCodeInVirtualMemory(TRUE);    break;   case 3:
    CreateCodeInVirtualMemoryAndExecute(TRUE);    break;   default:
    cout << "Invalid input" << endl;
  }
}
}int main()
{
DecisionLoop(); return 0;
}
 
在这里我没有去对它的应用做更多的介绍,但我相信我的抛砖引玉一定能够让更多的人对这一功能产生兴趣。
对于在事件查看器中的应用程序和服务日志中找到的大多数内容,您也可以以相同的方式完成此类操作——单击特定日志的属性,它将具有Provider-Name-Parts / LogName形式的名称。您只需要在xperf命令中使用“Provider-Name-Parts”部分即可。
未发布 MailBee.NET Objects接收电子邮件(POP3)教程四:访问电子邮件附件
by Harriet666 keys 分享 1501232156519
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
MailBee.NET Objects介绍和试用点击查看>>>
 
本文主要介绍了如何访问电子邮件附件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!

 
所有邮件附件都存储在MailMessage.Attachments集合中。该集合还列出了邮件中包含的嵌入图像和其他文件。
集合中附件的索引为零。例如,下面的代码打印第一个附件的名称:
C#
Console.WriteLine("Attachment name is " + msg.Attachments[0].Name);
VB.NET
Console.WriteLine("Attachment name is " + msg.Attachments(0).Name)
要访问附件,您需要从服务器下载整个邮件(不仅仅是标题)。
你可以检查邮件是否附件如下:
C#
Pop3 pop = new Pop3();
// Download entire message
MailMessage msg = pop.DownloadEntireMessage(1);
if (msg.HasAttachments)
{
        // The message has at least one attachment
}

VB.NET
Dim pop As New Pop3()
' Download entire message
Dim msg As MailMessage =  pop.DownloadEntireMessage(1) 
if (msg.HasAttachments) Then
        ' The message has at least one attachment
End If
在某些情况下,即使只下载了邮件开头部分,也可以使用MailMessage.HasAttachments属性。

 近期热门 - 点击最多
  1. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  2. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  3. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  4. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  5. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  6. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  7. Springboot+Gradle+Mysql+Jpa最简单实例教程
  8. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  9. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  10. node.js用activex/com+自动化读写excel时查询接口、参数的调试方法

  全端社区 - 最新回复
  1. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  2. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  3. Node.js 打印vite react+go项目目录树
  4. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  5. Windows与Mac通过git ssh和rsync实现文件共享互传
  6. Windows与Mac通过git ssh和scp实现文件共享互传
  7. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  8. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件
  9. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  10. ReactNative获取Android/iOS的MAC/IP地址: react-native-device-info模块的安装与使用

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA