未找到

未发布 MailBee.NET Objects撰写邮件教程(三):请求阅读/发送状态提示
by Harriet666 keys 分享 1502269098187
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
 
本文主要介绍了电子邮件请求阅读/发送状态提示的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
要查看邮件发送状态,开发人员应使用DeliveryNotificationOptions类。此类提供如何以及何时将ESMTP传递状态通知(DSN)发送回发送方的属性和方法。要获取或设置触发ESMTP服务器的事件,开发人员应使用NotifyCondition属性:
C#
Smtp mailer = new Smtp();
mailer.DeliveryNotification.NotifyCondition = DsnNotifyCondition.Always;

VB.NET
Dim mailer As New Smtp() 
mailer.DeliveryNotification.NotifyCondition = DsnNotifyCondition.Always
 
如果邮件服务器支持DSN扩展,则开发人员可以指定触发ESMTP服务器将发送状态发回邮件发送方的事件。为此开发人员应该使用DsnNotifyCondition枚举。例如,使用默认值,服务器将自行发送通知;如果邮件发送失败则会触发通知。有时,当邮件发送失败时,可以使用发送状态通知返回原始邮件。使用MailBee,开发人员可以指定邮件发送失败时哪个部分(整个邮件或仅标头)应与发送状态通知一起发回:
C#
mailer.DeliveryNotification.ReturnPortion = DsnReturnPortion.Header;

VB.NET
mailer.DeliveryNotification.ReturnPortion = DsnReturnPortion.Header
 
开发人员还可以指定将添加到通知邮件中的特定唯一字符串。它可以用于将通知邮件与原始邮件进行匹配:
​C#
mailer.DeliveryNotification.TrackingID = "UNQIUE_STRING_q8sdf74d";
VB.NET
mailer.DeliveryNotification.TrackingID = "UNQIUE_STRING_q8sdf74d"
 
如果服务器不支持DSN,则不会发送状态通知。但是,在这种情况下,不会向应用程序返回任何错误。你可以手动检
查服务器是否支持发送状态通知:
C#
if (mailer.GetExtension("DSN") != null)
{
    Console.WriteLine("The message will be submitted with DSN support");
}
else
{
    Console.WriteLine("The message will be submitted without DSN support");
}

VB.NET
If mailer.GetExtension("DSN") IsNot Nothing Then
    Console.WriteLine("The message will be submitted with DSN support")
Else
    Console.WriteLine("The message will be submitted without DSN support")
End If
 
请注意,你应该在Smtp.Connect方法调用后在调用GetExtension(“DSN”)。
请求查看邮件发送状态的另一种方法是使用MailMessage.ConfirmReceipt属性。它允许开发人员获取或设置应收到发送确认邮件的个人电子邮件地址。
以下代码设置Return-Receipt-To消息头:
C#
// Create new MailMessage object.
MailMessage msg = new MailMessage();

msg.LoadMessage(@"C:\Temp\MyMail.eml");

msg.ConfirmReceipt = "jdoe@domain.com";

VB.NET
' Create new MailMessage object.
Dim msg As New MailMessage()
 
msg.LoadMessage("C:\Temp\MyMail.eml")
 
msg.ConfirmReceipt = "jdoe@domain.com"

收件人的邮件服务器应该检查接收到的邮件Return-Receipt-To标题值,并将发送确认邮件发送到该标题中指定的电子邮件地址。因此,收件人的邮件软件必须支持Return-Receipt-To功能。一些服务器支持Return-Receipt-To和DSN,而其他服务器只支持其中一个,甚至不支持。你可以同时使用这两种方法。
发送状态信息尚未确保收件人已阅读该邮件。要获取包含电子邮件地址的字符串,请使用MailMessage.ConfirmRead属性。
C#
// Create new MailMessage object.
MailMessage msg = new MailMessage();

// Load the message from .eml file
msg.LoadMessage(@"C:\Temp\MyMail.eml");

// Show the e-mail address of recipient of the read confirmation message.
Console.WriteLine("Send confirmation to " + msg.ConfirmRead);

VB.NET
' Create new MailMessage object.
Dim msg As New MailMessage()
 
' Load the message from .eml file
msg.LoadMessage("C:\Temp\MyMail.eml")
 
' Show the e-mail address of recipient of the read confirmation message.
Console.WriteLine("Send confirmation to " + msg.ConfirmRead)
注意: 收件人使用的邮件客户端必须支持ConfirmRead功能(该软件必须支持Disposition-Notification-To标头)。
未发布 MailBee.NET ObjectsL显示HTML/纯文本邮件教程(三):显示带嵌入图片的邮件
by Harriet666 keys 分享 1502445497256
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
 
本文主要介绍了显示带嵌入图片的邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
包含嵌入图片(以及嵌入式脚本、CSS表和其他对象)的HTML邮件无法在不修改邮件正文的情况下呈现。这是因为嵌入对象的URL被表示为CID(Content-ID值)而不是真实的URL。HTML邮件正文中的CID参考如下所示:(IMG SRC =“cid:picture1”)。这是图像源是Content-ID值等于“picture1”的邮件附件的示例。在呈现HTML正文时,必须显示该图像代替(IMG SRC =“cid:picture1”)标签。因此,在呈现邮件的HTML主体之前,开发人员必须用相应图像的真实URL替换所有这些伪URL。例如,你可以将所有嵌入对象的附件保存到磁盘,并将相应的CID引用替换为保存的附件URL。但是,手动执行此操作非常复杂。
 
幸运的是,MailBee具有显示带有嵌入对象的HTML体的特殊功能。GetHtmlAndSaveRelatedFiles方法将所有嵌入的对象保存到临时位置,用其虚拟路
径替换所有CID,并返回准备好的HTML主体字符串。Web应用程序开发人员可以使用此方法在浏览器中显示带有嵌入图片的HTML格式的邮件。
 
使用此方法时,还应将WorkFolder物理位置设置为保存嵌入对象的附件。此物理位置必须与传递给GetHtmlAndSaveRelatedFiles方法的virtualPath值
相匹配。
C#
// We assume "C:\Inetpub\wwwroot" is a physical path to the location
// visible from Internet as "http://www.domain.com" (virtual path). 
msg.Parser.WorkingFolder = @"C:\Inetpub\wwwroot";
Response.Write(oMsg.GetHtmlAndSaveRelatedFiles("http://www.domain.com", VirtualMappingType.Static, 

MessageFolderBehavior.DoNotCreate));

VB.NET
' We assume "C:\Inetpub\wwwroot" is a physical path to the location
' visible from Internet as "http://www.domain.com" (virtual path). 
msg.Parser.WorkingFolder = "C:\Inetpub\wwwroot"
Response.Write(oMsg.GetHtmlAndSaveRelatedFiles("http://www.domain.com", VirtualMappingType.Static, 

MessageFolderBehavior.DoNotCreate))
 
因此,如果HTML格式的邮件体包含(IMG SRC =“cid:pic1”),并且该消息还具有ContentID(CID)“pic1”的嵌入式附件“picture.gif”,则调
用GetHtmlAndSaveRelatedFiles方法将替换“cid: pic1“与http://www.domain.com/picture.gif值。
 
如果你正在开发不使用虚拟路径的桌面应用程序,则可以将virtualPath设置为NonWeb值。在这种情况下,保存文件的物理路径将被用作URL。
C#
msg.Parser.WorkingFolder = @"C:\Temp";
Response.Write(msg.GetHtmlAndSaveRelatedFiles(null, VirtualMappingType.NonWeb, MessageFolderBehavior.CreateOnly));
VB.NET
msg.Parser.WorkingFolder = "C:\Temp"
Response.Write(msg.GetHtmlAndSaveRelatedFiles(Nothing, VirtualMappingType.NonWeb, MessageFolderBehavior.CreateOnly))

换句话说,嵌入式图片将由文件系统上的物理路径表示,这些路径将被放置在相应HTML标签的SRC元素中。例如(IMG SRC =“cid:pic1”)将被替换为(IMG SRC =“file:/// C:\ Temp \ picture.gif”>)。
未发布 网络通讯控件PowerSNMP for .NET常见问题合集
by Harriet666 keys 分享 1502788489271
PowerSNMP for .NET是用于监视和控制网络设备创建自定义的SNMP管理器。简单网络管理协议(SNMP)采用线程通信机制,安全强、并且具有编码/解码功能,您可以快速开发定制SNMP应用程序。由于开发此工具需要的资源少,灵活性好,所以便于重新使用和维护。
 
PowerSNMP for .NET试用版下载>>>
 
问:PowerSNMP for .NET与其他SNMP产品有什么不同?
答:最新版本的PowerSNMP产品线增加了新的.NET 2.0重新设计,利用新的.NET环境的强大功能,提供了最先进的Internet Communications组件。包含以下功能:
  • SNMP版本1,2和3包含认证、加密/解密
  • RFC 1155,1157,1158,1213,2578,2579,3417和3418中定义的内置对象、标识符、表格、通知和组
  • MIB解析,自定义MIB文件可用于在源代码中生成C#或VB类
  • MIB编译,自定义MIB文件可用于在运行时生成动态类和对象
  • 可轻松实现多线程应用程序的启动方法
  • EncodedMessage属性,用于轻松调试发送和接收的字节以及会话记录
.NET环境已经发展,用户也是如此。客户正在开发更多的ASP.NET应用程序,更多的控制台应用程序和更多的服务应用程序。缺乏UI、伪阻塞和异步方法与这些环境无关。由于这些原因,PowerSNMP for .NET 4.x设计有以下重点:
  • 改进异步支持:传统的PowerSNMP异步支持提供了一种在工作线程上执行的方法,但这需要一个信号机制来指示何时完成操作。这导致了难以维护的事件驱动代码。通过新的设计,代码占用更少的资源并且更加灵活。
  • 改进.NET 2.0功能:PowerSNMP 4.x已经充分利用了.NET 2.0中引入功能。现在大多数用户已经从.NET 1.x迁移,可以升级PowerSNMP并兼顾兼容性。当然,.NET 1.x产品线仍可在.NET 1.x环境中使 用以支持旧版应用程序。
  • 支持.NET CF(Compact Framework):通过新的设计,全面支持Compact Framework。

问:试用版与许可版本有什么不同?
答:在开发期间,产品“试用”版本和许可版本之间没有区别。
在运行时,没有有效的开发者许可证创建的应用程序将定期显示一条试用消息。除了这个消息之外,功能没有区别。

问:示例是否随产品一起发送?
答:当然。我们发送将CSharp和Visual Basic .NET中的完整应用程序(不仅仅是简单的技术演示)作为Windows应用程序和Web应用程序。
 
问:PowerSNMP是否完全支持从表格中获取值?GetBulk怎么样?
答:以上都支持。PowerSNMP包括高级表格检索方法,完全支持版本2命令(如GetBulk)。
 
问:应用程序如何使用Manager控件?
答:一个典型的应用程序会将所有代理的IP地址存储在网络上,并且会按照时间表从代理收集统计信息。应用程序的地址也可能会被注册到代理以设置陷阱,因此管理员将以异步方式(动态地)通知重要的代理事件。信息将被记录到文件中,并通过用户界面动态显示。
 
问:应用程序如何使用代理控件?
答:假设PC主机正用于控制硬件设备。你可以创建一个代理,被查询时将通过硬件设备的统计信息进行响应。该概念可以扩展到提供由主机收集和提供的任何类型的信息(使用SNMP标准)。
 
问:我可以创建一个作为Microsoft操作系统代理的子代理吗?
答:通常不能。代理商通常使用“知名”端口161进行通信。由于Microsoft的代理将使用此端口,你的应用程序将必须使用非标准端口,并且你的管理器必须配置为检查你的非标准端口(可以在某些情况下进行,但不常见)。
 
问:当我建立VS.NET 2008 Website时,为什么会出现“尝试反序列化一个空的流”的异常?
答:网站为组件许可创建一个App_Licenses.dll,必须与应用程序一起分发。由于一个明显的VS.NET 2008错误,这个dll在64位操作系统编译时是错误的。为了解决这个问题,可以更换2008 Website中的App_Licenses dll。 
 
选项包括:
a)使用相同的控件/组件在相同(许可)机器上编译2005 Website
b)在32位计算机上编译2005或2008 WebSite,前提是该机器也获得许可(Dart Developer许可证允许安装在最多两台机器)
从以上的选项中选一个替换有缺陷的App_Licenses.dlll,并且网站应该在没有问题的情况下构建和部署。不要删除新的dll,否则VS.NET将再次创建错误的dll。
未发布 组件套包Essential Studio for UWP 2017 v3发布丨附下载
by Harriet666 keys 分享 1503047294687
Essential Studio for UWP是包含有35 +组件的综合套包,包括最快的图表和网格组件。所有组件根据当前被呈现的设备系列自适应渲染。
 
Essential Studio for UWP 2017 v3下载>>>
 
Essential Studio for UWP 2017 v3为图表添加了一个新的选择器控件,轴刻度中断,以及支持甘特图控件的样式定制。
 

选择器

新控件

新的选择器控件可以从自定义或模板化的视图项目列表中选择一个项目。 此控件也可以作为对话框打开。
 

主要特征

  • 多列
  • 标题视图
  • 页脚视图与默认按钮
  • 项目模板
  • 自定义视图
b09ae2e16b7b4548997fd85d9064d3b1ojpg
 

图表

轴刻度中断

为图表控件提供了轴刻度中断支持。
998e0388e6704793b6aae3b4ee595364ojpg

气泡图拖动

在编辑数据值时,可以拖动气泡图。
aae1f4f56c964ed0b154d3f1868d29afojpg
 

图表

增强注释功能

注释支持交互。可以选择、拖动、调整大小并旋转。
e7f8ec77acdf419884a70b8ed5cda9d0ojpg
注释可以根据它们对齐的段自动旋转。
df09b81ba8a44e018e71932daa9d05d5ojpg
 

DOCIO

内容控件

DocIO能够在Word文档中创建和修改内容控件,并提供了一种设计具有以下功能文档的方法:
  • 创建一个类似表单的用户界面。
  • 防止用户编辑内容控件的内容。
  • 将内容绑定到XML数据。
e2e9818108454cf89c71f68feb03e43bojpg

支持Word转为EPUB

DocIO现在支持将Word文档转换为EPUB文件。
e5f20473c82c4a879aa48bb4447896a3ojpg
 

PDF

电子签名

使用PKCS#12证书与私钥数字签名文件,如.pfx文件。
239e191ec51446cea0c4d87ae7234256ojpg

标记PDF

通过允许用户创建PDF/通用可访问性(PDF / UA)或符合章节508的PDF文档来提供辅助功能。
22c6e8fcb80842788604700039fc5cdeojpg
 

PDF查看器

弹出式注释

PDF Viewer现在允许用户添加和操作PDF文档中的弹出式注释。
6119b591b4ea42ba8da83729839ac92eojpg
 

Pivot客户端

关联数据源

Pivot客户端支持在嵌入式枢轴网格和枢轴图表中可视化关系数据。 它还提供一个UI选项来拖动字段,过滤它们,并在运行时通过数据透视表字段列表创建pivot视图。
60ced88f208d4aa08f6f8d4dcda1c94aojpg
 

演示

支持插入列

演示文稿现在允许在PowerPoint演示文稿中的表中插入列。
8f97c3756b8248379e75f15f1eed84e1ojpg
 

甘特图

样式

支持定制网格标题、时间刻度、前置连接器、任务标签和资源标签的样式。
d058eb1fb44047ac8ac5e9d1a6b12f52ojpg
 

事件和方法

增加了新的可用性事件和方法。
 

本地化

支持本地化控件中的静态文本。
 

看板

本土化

支持本地化控件中的静态文本。
 

XLSIO

过滤器功能增强

  • XlsIO现在允许用户通过文本、数字、单元格颜色和字体颜色对过滤的数据进行排序。
  • 提供基于自定义文本过滤器过滤数据的功能。

da8d1b8e95894d6ea168a87b3b71054eojpg
未发布 MVC界面开发包Essential Studio for ASP.NET MVC发布2017 v3丨附下载
by Harriet666 keys 分享 1503307206856
Essential Studio for ASP.NET MVC控件包是一个原生的MVC界面开发包,它包含了几乎所有企业级Web应用程序开发所需要的控件,如Grids, Charts, Gauges, Menus, Calendars, Editors等。 除此之外,该控件包还包含了可以让您的应用程序浏览和创建Excel,Word,PDF文件的高性能元件库。
 
Essential Studio for ASP.NET MVC 2017 v3点击下载>>>
 
Essential Studio for ASP.NET MVC 2017 v3通过添加StackingSplineArea图类型、图表的标尺等,拓宽了开发Web应用程序的范围。
 

PAGER

新控件

PAGER是一个新的ASP.NET MVC组件,可以将大量数据导入页面进行导航。包含一个可以自定义的UI。
主要特征:
  • 导航到所需页面的选项。
  • 导航到上一个/下一个/最后/第一页的选项。
  • 支持本地化。
  • 支持手机。
4a85afa1b17a43a49b45541b2cc18023ojpg
 

统计图表

StackingSplineArea和100%StackingSplineArea系列

增加新的系列类型StackingSplineArea和100%StackingSplineArea。
f600d199c729410ba1e1d483d113ce2dojpg
8dc2cb8b93ce40d597ee163d9f572a08ojpg


数据标签饱和度

根据背景颜色来显示数据标签文本。
042f402f0d4d4057a6fc9799c8e57fb8ojpg
 

多种样条类型

图表控件现在支持多个样条类型。
d32c1e565d954914bdd77a6df1e71786ojpg
 

数据管理器

Web API批量编辑

数据管理器支持Web API批处理操作。Web API批量编辑是一个独特的功能,添加删除和更改的请求可以一次性处理。
 

可查询的数据操作

数据管理器允许通过使用可查询数据操作来查询特定数据源。它可以执行IQueryable服务器端操作,如过滤、分页和排序。
 

图表

支持标尺

标尺已添加到图表控件中。
cd297c41cc9f40879bf1fc3346aab647ojpg
 

标签拖动限制选项

拖动标签时进行对齐,以便在调整其主体对象大小后保留其相对位置。 还添加了将标签拖动到特定位置的选项。
 

DOCIO

内容控件

DocIO能够在Word文档中创建和修改内容控件,并提供了一种设计具有以下功能文档的方法:
  • 创建一个类似表单的用户界面。
  • 防止用户编辑内容控件的内容。
  • 将内容绑定到XML数据。
104139e1a795442c84f27d7c2f98f80aojpg
 

Word转换PDF增强功能

  • DocIO现在可以在Azure网站中将Word文档转换为PDF。
  • DocIO现在可以将具有旋转图像的Word文档转换为原始格式的PDF格式。
  • DocIO现在可以将镜像边距的Word文档转换为原始格式的PDF格式。
8136f46eb918458ca988d0e2a1e25d8fojpg
 

文件管理器

根文件夹配置

支持访问应用程序的根文件夹,并在该根文件夹中显示备用文本。
ed1c240dd8374ce1ae5191026827571bojpg
 

甘特图

工作周

甘特图控制现在支持改变项目的工作周。
775852b746e5462999f379a1ffb77e60ojpg
 

验证任务栏编辑

现在可以验证任务栏编辑。
eb1b8f75d51c44be97820269c5f26f47ojpg


表格

支持页面大小下拉

通过使用页面大小的下拉列表,支持更改网格页面的大小。
2b7454324c5a4e13bb1a3e4def551b6aojpg
 

看板

状态显示/隐藏选项

显示/隐藏卡的功能。它可以使用键值对卡进行分组,并可以切换显示。
46757f7645ad4663b3dfabbddd70e35cojpg
 

PDF

压缩现有的PDF文档

减小PDF文件的大小。
7ffe56de8fd3496c9439ff1de9223e45ojpg
 

标记PDF

 
通过允许用户创建PDF/通用可访问性(PDF / UA)或符合章节508的PDF文档来提供辅助功能。
7805a042de43444b8724d9e02b2348a4ojpg
 

PDF查看器

 

手写签名

PDF查看器允许您将签名添加到任何PDF文档,并将其保存为标准PDF文件。
23357d2ea53e4af8b515e746a0016222ojpg
 

枢轴网格

按需加载(关系数据库)

按需加载允许仅在向下钻取操作时检索数据,从而提高控件的性能。
7a961866813e48be94b65e5cf0ed502fojpg
 

分页(关系数据库)

分页将大量记录分成单独的段以便轻松查看数据。它还提高了枢纽网格的性能。
63a08a8f4eea49cc8fc743c6f5e81009ojpg
 

按日期分组类型(关系数据库)

枢纽网格对日期类型字段进行分类,并根据年、季、月和日格式进行分组。
8f8bde86a206446da0bca8d448d63454ojpg
 

按日期类型排序(关系数据库)

支持以升序或降序来排序日期类型字段。
bb82fc56099244808a56acb85c0fad83ojpg
 

演示

 

支持插入列

演示文稿现在允许在PowerPoint演示文稿中的表中插入列。
bbd6b21bdacc4ed9b88887f0273b52e6ojpg
 

PDF和图像转换增强功能

 
演示文稿现在可以将具有旋转和嵌套组形状的PowerPoint演示文稿精确转换为PDF或图像格式。
3074d62f238d4ba2b7f3af672d0b02b5ojpg
 

丰富的文本编辑

拼写检查器

拼写检查器控件可以在RTE中的iframe元素上呈现,从而很容易找到拼写错误,并在上下文菜单和对话框模式中提供建议。在对话模式中,将显示一个包含建议单词列表的下拉菜单。 在上下文菜单模式下,当右键单击拼写错误的单词时,将出现具有拼写建议的上下文菜单。
e276540b869a4e808b0ccb3a324718b1ojpg
9f51694f512e4a16b4986c48a93494abojpg


时间表

在线添加/编辑预约

用户现在可以创建或编辑预约。
d9126e4ca35c4045b145fca607cc59ffojpg
 

拼写检查

拼写检查同步请求

拼写检查控件提供了通过发送同步请求来检查拼写错误的选项。
 

错误词建议

拼写检查控件提供了将拼写错误的单词传递给客户端的选项,然后检索建议的单词以进行更正。
 

电子表格

支持不连续范围的图表

电子表格控件现在可以将串联的图表导入不连续的范围或一系列点。
48fcc74cbb9244649d4a05f576f0cbd6ojpg
 

树型网格

文字换行

树型网格控件现在支持在单元格中文本换行。
cb2420d796e44b30b6ad7a8ae047729bojpg
 

按需加载

树型网格控件现在使用“按需加载”方法来支持数据绑定。
 
5e04a46c08274b3eb7f8897b42c16147ojpg
27e87b959dbf4890b05ef905e8198ca6ojpg

 

命令列

现在可以使用树型网格中的命令列执行CRUD操作和自定义操作。
6159700e81d04aaebe2468feed7e5673ojpg
2bded05aad0e4eeb81502460adb8a190ojpg

 

打印

现在可以打印树型网格的内容。
5aff4cc45e6b43788428227ebe4e304dojpg
 

编辑模板

树型网格控件使用编辑模板支持使用自定义编辑器编辑单元格值。
b6decf948197447e86e8f37f704467feojpg
 

列优先

现在使用列优先级响应树格网格列。
32eba02ddd244b9db7b1d23cf9ac988cojpg
 

TREEMAP

文字溢出

支持Treemap控件中的标签文本溢出。
1e48300c56e343d591d7f41ddd865f9dojpg

XLSIO

过滤器功能增强

  • XlsIO现在允许用户通过文本、数字、单元格颜色和字体颜色对过滤的数据进行排序。
  • 提供基于自定义文本过滤器过滤数据的功能。
319473abe59c41dd917560a7d894029aojpg
未发布 扫描识别控件Dynamic Web TWAIN发布v13.1,改进HTTPUpload方法
by Harriet666 keys 分享 1503480456565
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。然后用户可以编辑图像并将图像保存为多种格式,用户可保存图像到远程数据库或者SharePoint。这个TWAIN控件还支持上传和处理本地图像。
 
Dynamic Web TWAIN v13.1点击下载>>>

8ef936a3a9b5499b94ef15c012a796b4ojpg

Dynamic Web TWAIN新版本亮点:


  • 改进了HTTPUpload方法,现在你可以一次上传多个文件。 用户可以扫描或加载多个文件,并将它们作为单独的文件一次性上传到服务器。
  • 添加了一个新的方法ConvertToBlob,它允许你将图像转换为Blob。
  • 你可以使用优化的SetHTTPHeader方法从服务器端下载文件时设置HTTP标头。

Dynamic Web TWAIN v13.1更新内容


新增:
  • [仅限HTML5]添加ConvertToBlob API以返回指定文件类型中指定索引的Blob。
改进:
  • [仅限HTML5]改进了SetHTTPFormField API,以便能够在HTTP窗体中设置除字符串之外的Blob。
  • [仅限HTML5]改进了HTTPUpload API,以便能够上传SetHTTPFormField设置的二进制数据。
  • [仅限HTML5]改进了SetHTTPHeader API以支持HTTPDownload(Ex)方法。
  • [仅限HTML5]为CSS中使用的所有名称添加前缀,以避免可能的冲突。
  • [仅限HTML5]浏览器和服务器之间的通信性能大大提高。
修复:
  • 修复了没有卸载时无法使用方法“Load”在页面上初始化SDK的错误。
  • 修复了在循环中异步完成上传操作则不起作用的错误。
  • 修复了按百分比设置查看器大小时出现的错误。
注意:
  • 该升级版本的ActiveX版本保持不变。
未发布 MailBee.NET Objects退回邮件教程(二):POP3部分
by Harriet666 keys 分享 1503567760428
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,
简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。

MailBee.NET Objects介绍和试用点击查看>>>
 
 
本文主要介绍了SMTP服务器退回邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
 
在上期的SMTP部分中,我们将退回的电子邮件发送到指定的单个电子邮件地址。
 
每封退回的电子邮件都包含失败的电子邮件地址(以及其他信息)。这个失败的地址是我们想知道的。这个任务看起来很简单 - 你需要做的是扫描退回的
邮件以确定地址的典型字段。但是有一个隐藏的危险:每个邮件服务器都有自己的邮件退回格式。虽然它们几乎具有相同的“From”和“主题”字段,但是退回地址可以在邮件的任何位置。MailEnable服务器的典型退回邮件如下所示:
From: POSTMASTER@domain.com
To: jdoe@domain.com
Subject: Message Delivery Failure

MailEnable: Message Delivery Failure.

The following recipient(s) could not be reached: 

Recipient: [SMTP: bill@domain.com] Reason: The message could not be delivered because the domain name (domain.com) does not appear 

to be registered.

函数GetInvalidEmailAddressME()检查邮件是否被退回,并从退回的邮件中提取失败的地址。由于退回邮件格式不同,此功能仅对MailEnable服务器有效。例如,如果你正在使用Communigate Pro服务器,则退回消息如下所示:
From: MAILER-DAEMON@domain.local
To: jdoe@localhost Subject:
Undeliverable mail:

Failed to deliver to ''
 
正如你所看到的,这个退回的邮件与前一个几乎相同。使用哪个服务器并不重要,退回信息总是有From,To和Subject字段,退回信息在其正文中有失败的地址。函数GetInvalidEmailAddressCP()与前一个函数几乎相同; 区别仅在于检查邮件字段并搜索失败的地址。支持尽可能多的退回电子邮件格式至关重要。这就是为什么你需要修改GetInvalidEmailAddress()函数,以适应服务器使用的退回电子邮件格式。
 
注意:在某些情况下,你可能需要扫描退回的电子邮件以获取其他信息。如果由于暂时的问题,退回的邮件到达,则不要删除电子邮件地址:邮箱超过配
额,邮件服务器关闭等。退回邮件可以分为两种类型:硬邮件和软邮件。如果是不存在的帐户或域,则会发生硬性退回。其他故障,如完整的邮箱或暂时
不可用的域,则是软性退回。你可以为数据库中的每个地址进行计算。也许下一次尝试发送邮件到具有一些软性退回的地址时将成功。
 
代码示例:
在此示例中,我们从指定的帐户中检索退回的电子邮件,然后从每个退回的电子邮件中提取失败的电子邮件地址。失败的地址传递给RemoveEmailFromDatabase子程序,该子程序必须从数据库中删除失败的地址。应用程序还会从服务器中删除退回的电子邮件,以避免下次处理。
C#:
// Create POP3 object
Pop3 pop = new Pop3();

// Enable logging to file
pop.Log.Enabled = true;
pop.Log.Filename = @"C:\log.txt";
pop.Log.Clear();

// Connect to POP3 server
pop.Connect("mail.domain.com");
pop.Login("bounce", "secret");

// Download headers and bodies of all messages.
MailMessageCollection msgs = pop.DownloadMessageHeaders(1, -1, -1);
                        
// Loop through all messages in the mailbox
foreach (MailMessage msg in msgs)
{
        string strLine = msg.BodyPlainText;
        Console.WriteLine("From: " + msg.From.Email);
                                
        // Get failed email address
        string str_invalid_email =  GetInvalidEmailAddressME(msg);

        // If str_invalid_email is non-empty then failed email 
        // address was found
        if (str_invalid_email.Length > 0)
        {
                // Remove failed email from database
                RemoveEmailFromDatabase(str_invalid_email);

                // Display invalid adress
                Console.WriteLine("Invalid email: " + str_invalid_email);                

                // Delete bounced email from server to avoid
                // processing it next time
                pop.DeleteMessage(msg.IndexOnServer);
        }
}

// Disconnect from POP3 server
pop.Disconnect();

// The function checks whether the message is bounced and extracts 
// failed address 
// from bounced message. Valid only for MailEnable servers
static string  GetInvalidEmailAddressME(MailMessage msg)
{
        string str_invalid_email = msg.BodyPlainText;

        // Check if this is a bounced message report
        if (msg.Subject.IndexOf("Delivery Failure") == -1)
{ 
                return "";
        }
        if (msg.From.ToString().IndexOf("POSTMASTER") == -1)
        {
                return "";
        }

        // Now we're sure this is a bounced message report
        int i_start;
        i_start = str_invalid_email.IndexOf("SMTP:");

        // Check if bounced message report contains "Recipient:" field
        if (i_start == -1)
        {
                return "";
        }
                        
        // Get failed address
        i_start += 5;
        i_end = str_invalid_email.IndexOf("]",i_start);
        str_invalid_email.Substring(i_start, i_end);
                        
        return str_invalid_email;
}

// The function checks whether the message is bounced and extracts 
// failed address 
// from bounced message. Valid only for Communigate Pro servers
static string  GetInvalidEmailAddressCP(MailMessage msg)
{
string str_invalid_email = msg.BodyPlainText;

        // Check if this is a bounced message report
        if (msg.Subject.IndexOf("Undeliverable mail") == -1) 
        {
                return "";
        }
        if (msg.From.ToString().IndexOf("MAILER-DAEMON") == -1) 
        {
                return "";
        }

        // Now we're sure this is a bounced message report
        int i_start;
        i_start = str_invalid_email.IndexOf("to '<");

        // Check if bounced message report contains 
        // "Failed to deliver to " field
        if (i_start == -1)
        { 
                return "";
        }
                        
        // Get failed address
        i_start += 5;
        i_end = str_invalid_email.IndexOf("]",i_start);
        str_invalid_email.Substring(i_start, i_end);
                        
        return str_invalid_email;
}

// This function must remove (or disable) specified
// email address from mailing list
static void RemoveEmailFromDatabase(string str_invalid_email)
{
// TODO: Add your code here                        
}
 
VB.NET:
Dim pop As New Pop3

' Enable logging to file
pop.Log.Enabled = True
pop.Log.Filename = "C:\log.txt"
pop.Log.Clear()

' Connect to POP3 server
pop.Connect("mail.domain.com")
pop.Login("jdoe", "secret")

' Download headers and bodies for all messages.
Dim msgs As MailMessageCollection = pop.DownloadMessageHeaders(1, -1, -1)

' Loop through all messages in the mailbox
Dim msg As MailMessage
For Each msg In msgs
        Dim strLine As String = msg.BodyPlainText
        Console.WriteLine("From: " + msg.From.Email)

        ' Get failed email address
        Dim str_invalid_email As String = GetInvalidEmailAddressME(msg)

        ' If str_invalid_email is non-empty then failed email 
        ' address was found
        If str_invalid_email.Length > 0 Then
                'Remove failed email from database
                RemoveEmailFromDatabase(str_invalid_email)

                ' Display invalid address
                Console.WriteLine("Invalid email: " & str_invalid_email)

                ' Delete bounced email from server to avoid
                ' processing it next time
                pop.DeleteMessage(msg.IndexOnServer)
        End If
Next
Console.ReadLine()

' Disconnect from POP3 server
pop.Disconnect()

' The function checks whether the message is bounced and extracts 
' failed address 
' from bounced message. Valid only for MailEnable servers
Function GetInvalidEmailAddressME(ByVal msg As MailMessage) As String
        Dim str_invalid_email As String = msg.BodyPlainText

        ' Check if this is a bounced message report
        If msg.Subject.IndexOf("Delivery Failure") = -1 Then
                Return ""
        End If
        If msg.From.ToString().IndexOf("POSTMASTER") = -1 Then
                Return ""
        End If

        ' Now we're sure this is a bounced message report
        Dim i_start As Integer, i_end As Integer
        i_start = str_invalid_email.IndexOf("SMTP:")

        ' Check if bounced message report contains "Recipient:" field
        If i_start = -1 Then
                Return ""
        End If

        ' Get failed address
        i_start += 5
        i_end = str_invalid_email.IndexOf("]", i_start)
        str_invalid_email.Substring(i_start, i_end)

        Return str_invalid_email
End Function

' The function checks whether the message is bounced and extracts 
' failed address 
' from bounced message. Valid only for Communigate Pro servers
Function GetInvalidEmailAddressCP(ByVal msg As MailMessage) As String
        Dim str_invalid_email As String = msg.BodyPlainText

        ' Check if this is a bounced message report
        If msg.Subject.IndexOf("Undeliverable mail") = -1 Then
                Return ""
        End If
        If msg.From.ToString().IndexOf("MAILER-DAEMON") = -1 Then
                Return ""
        End If

        ' Now we're sure this is a bounced message report
        Dim i_start As Integer, i_end As Integer
        i_start = str_invalid_email.IndexOf("to '<")

        ' Check if bounced message report contains 
        ' "Failed to deliver to " field
        If i_start = -1 Then
                Return ""
        End If

        ' Get failed address
        i_start += 5
        i_end = str_invalid_email.IndexOf("]", i_start)
        str_invalid_email.Substring(i_start, i_end)

        Return str_invalid_email
End Function

' This function must remove (or disable) specified
' email address from mailing list
Sub RemoveEmailFromDatabase(ByVal str_invalid_email As String)
        ' TODO: Add your code here                        
End Sub
未发布 【推荐】2017年你应该了解的11款新型编程工具
by Harriet666 keys 分享 1503912408799
对于开发人员来说,工具是至关重要的。工具可以使开发人员的日常工作更加轻松、高效,因为只要关注最重要的事情即可。想要寻找到更好的替代工具往往比坚持使用熟悉的、过时的工具要困难得多。在这篇文章中,我们将列出你可以在日常工作中使用的一些新的编程工具。对在线流媒体感兴趣的许多开发人员也已经开始在其开发环境中使用这些新工具,因为这些工具与其陈旧的设施相比具有明显的优势。
 
你可能会想,如果旧的工具可以完成工作,那么是否还有必要去寻找新的替代工具呢?可以肯定的说,技术始终在变革,它正在不断地塑造、改变我们的工作方式,所以,它有必要保持更新。此外,新开发工具可以通过自动化在某些方面为你的工作增添更多价值,从而更好地帮助你控制你的工作流程。所以,如果你现在确信并准备好考虑使用市场上一些新的编程工具,请继续阅读本文,以找出其中最好的、最适合你的工具。
 

1. LiveEdu


LiveEdu 是开发人员和工程师经常光顾的好地方。它是一个基于项目的学习平台,服务于游戏开发、设计、数据科学、编程、增强现实、人工智能以及虚拟现实等方面的技能提升。学习的关键在于项目的真实性,而且 LiveEdu平台还提供了蕴含许多不同主题的项目教程,可以适用于任何人,包括初学者。
 

2.Standup


Standup 对于监控团队开发进度而言是一款非常好的工具。它可以很好地集成所有你已经在用的流行工具(例如Trello、BitBucket、GitHub等)。那么接下来,它是如何工作的呢?首先,它会根据开发团队成员的提交历史完全自动地生成工作报告。这有助于团队成员之间轻松地实现信息共享,也让团队成员之间形成了积极的竞争关系。这一想法是由Mesh Studio提出的,当时他们正在完成一个客户的严格的汇报需求的合同工作。
 

3. Cell 

Cell 自称是“自驱动的网页应用开发框架”。“框架”这一关键词应该会立刻让你想到,它应该包含APIs、方法、或其他框架应该具备的功能。但是,Cell却提供了一种全新的方式来查看如何编写HTML 代码。它适用于3个简单的规则,而且不运行任何函数就能够自主构建DOM。此外,Cell还提供了一种类似写小说的方式(a novel approach)来开发网页应用。
 

4. Osquery

Osquery 是 Facebook 通过 Query 语言揭示操作系统的方法。虽然乍看起来并不是很有趣,但它其实具有很多实际的用途。例如,它可以用于获取通过USB连接的硬件设备的列表。
 
对于那些想要保护自己的应用程序免受安全漏洞影响,或是能够更好地监视其应用程序在不同系统上的性能的Web开发人员来说,其中一个相对比较有效的方法就是不使用底层函数或API交互的能力。

 

5. React Native Firebase

React Native Firebase 可以帮助开发人员更加轻松地使用 React Native 和Firebase。利用RN Firebase,你可以 在Android和iOS系统上使用 JavaScript bridge轻松访问本地 eFirebase SDK。
 

6. Warp

Warp 是一款非常简单的工具。它可以让任何人分享他们的终端。共享终端就像输入一个 warp open 命令一样简单。这可以帮助开发人员或主机供应商轻松地分享彼此的终端。这款工具的关键特征在其“安全性”和“易于传输”。让分享变得前所未有地容易!你很快就会忘记SSH 的必要性,并使用该功能与远程团队和新成员进行互动。
 

7. Draft

Draft 是一款新工具,可以帮助开发人员轻松地在 Kubernet上构建应用程序。截至目前为止,在把应用移动到版本库之前,对应用程序进行测试仍然是一项耗时且艰巨的工作。但是,利用 Draft,开发人员就可以针对“内部循环”并在Kubernetes开发沙箱中对应用程序进行测试。沙箱可以通过公共URL轻松获得,并可以使用本地编辑器进行修改。
 

8. Docsify 

Docsify 是一个文档站点生成器工具。但是,它与其他的静态HTML文件生成器却是完全不同的。利用Docsify,你可以使用 Markdown 文件生成你的站点。这样一来,你就可以修改Markdown中的代码,并及时看到更新。这种差异性使它与其他流行工具(例如GitBook等)相比也能占据明显的竞争优势。


9. Prismic IO 

Prismic IO 是一个无头CMS系统的后台应用。多亏了API,让它可以与任何站点和应用程序一起使用,并可以轻松地与现有系统进行集成。此外,CMS 还为营销人员提供了一些现代化的发布和创作工具。


10. Javalin

Javalin 为Kotlin和Java提供了简单的REST API。该REST API非常易于使用,且API也是非常流畅的。它不是一个框架,因此不应该被混淆。其目的主要是提供一个非常简单易用的轻量级 REST API库。
 
以下是用Kotlin实现的 “Hello World”API的示例:
import io.javalin.Javalin
funmain(args: Array) {
    val app = Javalin.create().port(7000)
    app.get("/") { ctx -> ctx.result("Hello World") }
}


11. Bootsnap

我们都知道,速度对于一些应用程序而言有多重要。Ruby的性能可谓是臭名昭著。然而,Bootsnap尝试通过缓存很多Ruby方法并提高其整体性能来加快其速度。Bootsnap可以以gem的形式轻松地插入你的应用程序中,它目前可用于 MacOS 和 Linux 系统。
未发布 ASP.NET Core 2加入了Razor页面特性
by Harriet666 keys 分享 1504257472829
最近发布的ASP.NET Core 2.0,连同新发布的.NET Core 2和Entity Framework Core 2.0y,一并构成了.NET Core 2.0生态中的三元组。此发布给出了多个新特性和改进,其中包括通用性能的改进、Razor页面、新的开发模板以及更好的Azure Diagnostics支持。

让我们首先看一下Razor页面。Razor页面类似于标准的MVC视图,只是通过使用@Page指令标明自身为Razor页面。Microsoft现在考虑将Razor页面作为ASP.NET Core中构建Web应用UI的推荐方法,当然开发人员也可自由地选择最适合自己的方法。使用Razor页面编写的Web页面,无需经过控制器即可直接处理请求,正如在标准的ASP.NET MVC应用中那样。

转向ASP.NET Core 2平台的另一个好处是简化了对软件包的引用。在项目的.csproj文件中,仅需引用Microsoft.AspNetCore.All。这是一个Meta-package,它在简化了引用问题的同时,确保应用所需的所有库是可用的。而在发布Web应用时,只有应用所需的库才会与应用一并发布,避免了文件膨胀。另一个优点是Meta-package可使应用的启动速度更快,这是因为它使用了.NET Core Runtime Store,其中预编译了所有的软件包和文件。虽然这一Meta-package提供了一种便利的软件包引用方式,但是开发人员依然可以继续在Microsoft.AspNetCore.*中直接引用特定的软件包。

为了支持新的特性,ASP.NET Core 2扩充一些模板,它们来自于Razore页面(模板命名为“Web Application”)、Web API、基于MVC的Web应用、Angular、React.js和React.js& Redux等。所有这些模板也可以通过命令行使用,不必依赖于Visual Studio 2017

在明确声明的情况下,Razor语言引擎提供对C# 7.1特性的支持。为此,需在项目文件中需添加该如下属性:latest。更改将在重新加载解决方案后生效。

规划将应用部署到Azure的开发人员将会看到,ASP.NET Core 2构建的应用不需作任何更改,就可使用Azure App Service。应用的部署可以在VS2017中执行,也可直接在Azure门户上执行。

使用已有ASP.NET Core 1.X软件包的开发人员,要详细了解如何升级应用到ASP.NET Core 2.0,可以参考Microsoft的升级指南。使用ASP.NET 2.0需下载.NET Core 2 SDK,它是独立于visual studio 2017提供的。
未发布 UI组件库jQWidgets更新至v5.2.0,新增Angular枢轴网格丨附下载
by Harriet666 keys 分享 1504691512134
jQWidgets是一个基于jQuery JavaScript的综合性和创新性的HTML5 UI组件库,旨在帮助开发者创建专业、跨平台的Web应用程序,并最大限度的节省开发时间。jQWidgets包含30多种UI组件,是最快的JavaScript UI框架之一。

【最新版jQWidgets v5.2.0点击下载>>>】

jQWidgets v5.2.0更新内容:
新增:
  • Angular枢轴网格
  • React枢轴网格
  • 枢轴网格自定义元素
 
改进:
  • jqxTabs和jqxRibbon light主题。
 
修复:
  • 修复jqxListBox和jqxDropDownList中关于enableSelection属性动态设置时的问题。
  • 修复jqxCheckBox和jqxRadioButton中事件发生时关于event.args.type成员的问题。
  • 修复jqxPivotGrid中当鼠标在滚动条上释放时鼠标选择的问题。
  • 修复jqxPivotGrid中关于命中测试功能的问题。
  • 修复jqxTabs中关于Tabs在IFrame内删除事件侦听器的问题。
  • 修复jqxGrid中当点击垂直和水平滚动条之间的区域时鼠标选择的问题。

 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  3. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  4. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  5. Node.js 打印vite react+go项目目录树
  6. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  7. Windows与Mac通过git ssh和rsync实现文件共享互传
  8. Windows与Mac通过git ssh和scp实现文件共享互传
  9. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  10. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件

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

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

OnceOA