未找到

未发布 扫描识别工具Dynamic Web TWAIN使用教程:属性/方法/事件介绍
by Harriet666 keys 分享 1511947096620
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。
本文为你介绍Dynamic Web TWAIN中属性/方法/事件的具体操作代码,欢迎收藏。
 
Dynamic Web TWAIN最新版免费下载>>>
 
当正确实施后,Dynamic Web TWAIN将在页面加载后自动初始化。一旦初始化,你就可以像堆任何正常的JS对象一样控制它。您可以参考我们的在线API文档来查看Dynamic Web TWAIN的所有内置属性、方法和事件。
 
这里有三种使用Dynamic Web TWAIN的方法:

属性

属性用于在运行时从Dynamic Web TWAIN中获取或设置特定的值,例如Resolution、Duplex、IfShowUI等。
1
2
3
/* Property */
/* Scan pages in 200 DPI */
DWObject.Resolution = 200;

方法

方法用于调用Dynamic Web TWAIN对象的内置函数,如AcquireImage、SaveAsJPEG、Rotate等。语法非常简单:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Method
   
///
<summary> /// Rotates the image of a specified index in buffer by a specified angle.
  /// </summary>
///
<param name="sImageIndex" type="short" data-filtered="filtered">
specifies the index of image in buffer. The index is 0-based.
 
///
<param name="fAngle" type="float" data-filtered="filtered">
specifies the angle.
///
<param name="bKeepSize" type="bool" data-filtered="filtered">
specifies whether to keep the original size
///
<returns type="bool" data-filtered="filtered"></returns>
DWObject.Rotate(0, 45, false); // rotate the 1st image in the buffer by 45 degrees

事件

当达到某个触发点时触发事件。例如,OnMouseClick鼠标点击事件等。与属性和方法相比,事件是有点难度的。在这里我们再多谈一下。
 
处理事件
添加一个事件监听器
 
要添加事件监听器,可以使用内置方法RegisterEvent。请参考下面的示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
<script type="text/javascript" data-filtered="filtered">
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
var DWObject;
/* OnWebTwainReady event fires as soon as Dynamic Web TWAIN is initialized and ready to be used. It is the best place to add event listeners */
function Dynamsoft_OnReady() {
   DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
   DWObject.RegisterEvent("OnPostTransfer", Dynamsoft_OnPostTransfer);
}
function Dynamsoft_OnPostTransfer() {
   /* This event OnPostTransfer will be triggered after a transfer ends. */
   /* your code goes here*/
}
</script>
 
在上面的代码中,我们添加了JavaScript函数Dynamsoft_OnPostTransfer()作为事件OnPostTransfer的事件监听器。另外,你可以写这样的代码:
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript" data-filtered="filtered">
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
var DWObject;
function Dynamsoft_OnReady() {
   DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
   DWObject.RegisterEvent("OnPostTransfer", function() {
    /* your code goes here*/
   });
}
</script>
 
有参数的事件
一些事件具有参数。以OnMouseClick事件为例:
1
2
/* sImageIndex is the index of the image you clicked on*/
OnMouseClick(short sImageIndex)
 
当您创建相应的JavaScript函数(AKA,事件侦听器)时,可以包含参数并在运行时进行检索。
1
2
3
function DynamicWebTwain_OnMouseClick(index) {
    CurrentImage.value = index + 1;
}

或者
1
2
3
DWObject.RegisterEvent("OnPostTransfer", function(index) {
    CurrentImage.value = index + 1;
});
 
特殊事件 -“OnWebTwainReady”
在所有的内置事件中,有一个特殊事件“OnWebTwainReady”。基本上这个事件在Dynamic Web TWAIN对象被初始化并准备好使用的时候触发。正如您在本文前面看到的那样,推荐使用它的方法是:
1
2
3
4
5
6
7
<script type="text/javascript" data-filtered="filtered">
Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', Dynamsoft_OnReady);
var DWObject;
function Dynamsoft_OnReady() {
   DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
}
</script>

或者
1
2
3
4
5
<script type="text/javascript" data-filtered="filtered">
   Dynamsoft.WebTwainEnv.RegisterEvent('OnWebTwainReady', function() {
     DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
   });
</script>

本次教程到此结束,希望能对Dynamic Web TWAIN的用户带来帮助,接下来还会有更多的相关教程,敬请期待!

未发布 矢量图形引擎库VectorDraw Developer Framework更新至v7.7012.1.1,周年8.5折限时特惠!
by Harriet666 keys 分享 1509529066316
VectorDraw Developer Framework(VDF)是一款构建2D、3D图形并用于应用程序可视化的矢量图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。VectorDraw Developer Framework最新版点击下载>>>
 
慧都十四周年狂欢开启VectorDraw Developer Framework(VDF)8.5折冰点价,限时一个月,错过不再有,马上咨询>>>
 
VectorDraw Developer Framework(VDF)v7.7012.1.1更新内容:

WebJS

新增需求(7.7012.0.1)
  • 70001107 支持vdPolyface对象的3d形状和GradientColors
  • 70001111 获取实体边界框
新增需求(7.7012.0.3)
  • 70001119 支持vdViews
  • 70001128 WebControl中增加了两个样本
新增需求(7.7012.0.5)
  • 70001115 vdViews的新功能
  • 70001133 Esc键取消整个polyline命令
  • 70001160 3d渲染支持更多的截面剪辑
新增需求(7.7012.0.7)
  • 70001171 在所有绘图实体上绘制新的临时实体
  • 70001172 获取复制的实体
新增需求(7.7012.0.9)
  • 70001194 支持标准折线和直角的宽度
 
漏洞(7.7012.0.1)
  • 70001098 vdSelectionModified事件返回不正确的所选项目数
漏洞(7.7012.0.2)
  • 70001118 GetEntitiesFromLayer()方法中的错误
漏洞(7.7012.0.3)
  • 70001123 isCanceled在scriptCommand.select中始终返回true
漏洞(7.7012.0.4)
  • 70001127 MouseRightButton和e鼠标按钮在Web控件中不一致
漏洞(7.7012.0.9)
  • 70001198 3D视图中的鼠标位置不正确
 
通常( 7.7012.0.5)
  • 70001162 WebCad示例已添加到WebControl中
通常( 7.7012.0.7)
  • 70001179 取消动作已被双击删除
 

Converter

新增需求(7.7012.0.5)
  • 70001159 支持DWG 2018格式
 
漏洞(7.7012.0.5)
  • 70001165 错误的文本转换
漏洞(7.7012.0.9)
  • 70001195 特定的.DWG不打开
 

vdDXF

漏洞(7.7012.0.5)
  • 70001147 无法在ACAD中打开DXF
  • 70001150 DefPoint1和LinePosition在保存后交换特定径向尺寸的值
  • 70001152 DXF文件加载并保存的问题
 

Engine

新增需求(7.7012.0.1)
  • 70001096 无法选择带有窗口选择的面
  • 70001105 提升GradientColors
  • 70001106 cmdMultiline中的自我复制
新增需求(7.7012.0.4)
  • 70001144 ZoomPrevous和鼠标放大
新增需求(7.7012.0.5)
  • 70001155 启用opengl反斜杠的细线
  • 70001157 以2D线模式应用部分剪辑
新增需求(7.7012.0.7)
  • 70001176 MText改进
  • 70001185 禁用默认屏幕显示的新方法
新增需求(7.7012.0.8)
  • 70001189 相对于最后一个折线段的PolarTrack
新增需求(7.7012.0.9)
  • 70001192 使用形状编号获取SHX中形状的ShapeName
 
漏洞(7.7012.0.1)
  • 70001102 编辑文本时的EditText问题
  • 70001109 如果在没有GetGripSelection方法的情况下添加选择,则不会引发GripModified事件
  • 70001110 Mtext未正确呈现
  • 70001113 3D模式中的文本线型显示错误
漏洞(7.7012.0.2)
  • 70001114 手柄选择未正确更新,并且屏幕上仍然显示
  • 70001116 UpdatePropertiesFromPrinter丢失纸张信息
  • 70001117 实用程序GetLineTypeDlg的Wrapper不会返回正确的行类型
漏洞(7.7012.0.3)
  • 70001125 删除特定折线中的RemoveInLinePoints
  • 70001126 3DPolyline未正确导入
  • 70001137 在WPF数字键控中的控制功能可以使5位数字达到9位
  • 70001140 3D pollyine在DXF 12中无法正确保存
  • 70001141 将特定的Poly Hatches保存到DXF会导致生成无效的DXF
漏洞(7.7012.0.4)
  • 70001131 文件没有使用ocx打开
  • 70001142 线型打印出现错误的刻度
  • 70001145 vdInsert的BoundinBox不正确
漏洞(7.7012.0.5)
  • 70001151 MText对象不符合BoxWidth
  • 70001154 ActiveTextHorJustify文本命令的问题
  • 70001158 当在ATI卡中使用OpenGL设置EdgeColor时,不正确的行将被渲染
  • 70001161 vdInsert与AligneToView未正确选择
漏洞(7.7012.0.6)
  • 70001166 CmdSketch忽略MouseElevation属性
  • 70001167当活动图层冻结时,CmdDimStyleDialog预览为空
漏洞(7.7012.0.7)
  • 70001170 vdSelection选择所有的问题
  • 70001173 VDF ActiveX 64位指针问题
  • 70001175 dwg未以vds格式正确导出
  • 70001181 Mtext命令无法正常使用特定文本
  • 70001184 忽略MaxBmpMemorySize for x86应用程序
漏洞(7.7012.0.8)
  • 70001187 EMF文件在不同分辨率的PC上加载不同的绘图大小
  • 70001188 PolarTrackAngle与SnapAngle不相关
漏洞(7.7012.0.9)
  • 70001196 图像透明度在wire2dGdiPlus模式下不起作用
  • 70001199 具有自定义对象xproperties的DXF未正确保存
2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

未发布 企业级工具包Essential Studio Enterprise Edition 2017 v2发布丨附下载
by Harriet666 keys 分享 1495869194719
Essential Studio企业版,一个跨越八个平台并包含433种独特控件的企业级工具包。使用Essential Studio企业版,开发者可以创建丰富的应用程序,并轻松地集成商业智能分析和报告解决方案。Essential Studio企业版是世界级的软件组件,它使得开发者能在最苛刻的环境下开发出高质量的软件。
 
Essential Studio企业版2017 v2点击下载>>>

Essential Studio Enterprise Edition 2017 v2

  • Xamarin的sunburst图和图像编辑器控件。
  • UWP的甘特控件。
  • ASP.NET MVC的日期范围选择器控件。
  • Xamarin的列表视图控件已正式发布。

Essential Studio for JavaScript

Essential Studio for JavaScript通过添加文本注释、Mondrian XML / A支持、列表视图中的虚拟滚动以及许多其他功能,扩展了企业Web开发界限。
abc714f5d74445e3b4a9109ed41184ebojpg
文本标记
在PDF查看器中添加和编辑文本标记注释,以突出显示、下划线和删除线标记文本。
bfcc0598ddcb494d8b0f2675f833ec6aojpg
支持客户端Mondrian XML/A
通过不同版本的XML/A连接从Mondrian中检索多维数据。
bd9edb5af7ee4e6d98a7429748173004ojpg
虚拟滚动
在列表视图控件中启用正常或连续的虚拟滚动以提高性能。
点击查看更多更新>>

Essential Studio for Xamarin

Essential Studio for Xamarin是最好的Xamarin.Forms套件之一,新增sunburst图表控件和许多其他功能。
0121c51af194452888456323b58b1427ojpg
新的sunburst图表
以同心的方式可视化不同级别的分层数据。
149696eb4f124f52ac1397c2d7126aa6ojpg
自动列表项目
根据列表视图控件中的内容大小自动适应列表项。
9f629a484db74c4cb0175878623cc240ojpg
表格摘要
显示数据网格控件顶部或底部的摘要信息。
点击查看更多更新>>

Essential Studio for WPF

Essential Studio for WPF是一个大型套件,新版本添加了工作簿排序和过滤、动态图表端口、Adobe X安全性和其他新的功能。
3040f223b865470eaf2d90c10aba92d8ojpg
在工作簿中排序和过滤
通过使用电子表格控件过滤和排序来分析工作簿中的数据。
4cf14b6243ea40c2b23b957d91d59cf3ojpg
滚轮鼠标平移
通过滚轮鼠标的中心滚动按钮平移图表。
f950fa4612434af09fb299f332b55083ojpg
Adobe X加密和解密
使用带有PDF 2.0安全功能的Essential PDF(AES Revision 6)。
点击查看更多更新>>

Essential Studio for Windows Forms

Essential Studio for Windows Forms 2017 v2版本,支持office 2016和主题定制等功能。
66d5151af621433c82e5c1ae8ceda524ojpg
Office 2016数字量规的样式
Office 2016主题外观和主题定制支持数字、线性和径向量规形式。
181dd65e956e42469c1ea284926c5c48ojpg
Excel表格过滤器
使用Essential XlsIO,根据文本,数字和日期筛选Excel表格中的行。
de89d91566f649a1abaf30e2266bbd69ojpg
Adobe X加密和解密
使用带有PDF 2.0安全功能的Essential PDF(AES Revision 6)。
点击查看更多更新>>

Essential Studio for UWP

Essential Studio for UWP为通用Windows平台增加了更多功能,新增甘特图控件。
a9378ad37e3b41fa9c913470ec4ee022ojpg
新甘特图控件
通过可视化和编辑计划来跟踪项目的进度。
7a78cca185844ad7813360a19024e510ojpg
片段装饰
为连接器添加了一种新的装饰元素,以指示连接在另一个连接器或片段上的流动。
584717f90f1e44719f8f1843e9d615cdojpg
数据透视图注释
在透视图中添加包含图表系列元数据的注释。
点击查看更多更新>>

Essential Studio for ASP.NET Web Forms

Essential Studio for ASP.NET Web Forms 2017 v2版本增加大量新功能包括自定义树形网格工具栏、文本注释等。
f7a601d32b7543fd8604e83839bd6074ojpg
文本标记
在PDF查看器中添加和编辑文本标记注释,以突出显示、下划线和删除线标记文本。
d0f00d90b4d148b59dfc9455b0e0050aojpg
导出到PDF
将甘特图内容导出为PDF文件。
8877795f43fc4058aa77dc1515a1dba7ojpg
自定义工具栏
将自定义项目添加到树形网格控件的工具栏。
点击查看更多更新>>

Essential Studio for ASP.NET MVC

ASP.NET MVC 2017 v2版本增加了更多的功能,例如新的日期范围选择器、文本注释和PowerPoint文件的注释编辑。
b8179fd221e04cadba1f0137525d8661ojpg
新日期范围选择器
从一组预定义或自定义范围中选择一个日期范围。
c63bc61d4b084938960de1086ba7988cojpg
文字标记
在PDF查看器中添加和编辑文本标记注释,以突出显示、下划线和删除线标记文本。
263fbb270e714bd0b89ba2f12e5e2423ojpg
添加和编辑注释
使用Essential Presentation在PowerPoint文件中创建和修改注释。
点击查看更多更新>>

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

未发布 【教程】Edraw Max(亿图图示):怎么用图片创建自己的符号库?
by Harriet666 keys 分享 1500972809000
Edraw Max(亿图图示)除了自带丰富的模板和例子,还有一个非常庞大的符号库,内置符号已经超过20000个。如果这些符号还是不能满足你的需求,那么你还可以通过软件“从图片创建库”的功能,创建一个属于你自己的符号库。本文就详细介绍一下具体是如何操作的!
 
目前Edraw Max(亿图图示)在线订购享75折优惠活动正在进行中,欢迎您下载、购买进行运用!
 
Edraw Max(亿图图示)v8.7最新版下载地址>>>
 
第一步:新建一个绘图页面,选择“符号”菜单下的“从图片创建库”。
 
第二步:在弹出的窗口中,选择你要作为库元素图片的文件夹,然后点击“选择文件夹”按钮即可。
 
第三步:左侧符号库就会显示出新添加的“图片”库。鼠标右键点击如下图所示位置,可对符号库重新命名。
 
第四步:选中具体的某一个图形、符号,然后右键选择“编辑符号”,即可对该符号进行再次编辑。

温馨提示:
1、建议“名称“和”提示”命名保持一致,否则符号显示的名称,和鼠标放在符号上显示的名称会不一样。
2、若“选择图元文件”的文件修改变动较大,“请选择形状图标”的文件也应做出相应的修改,否则,该符号在符号库中的显示,会和实际使用时的图会有出入。
 
第五步:导入新的图形到该符号库,从该符号库中导出图形,或者删除不需要用的图形符号,都可以通过点击鼠标右键进行设置。

未发布 AutoVue使用教程:如何在64位Linux上安装AutoVue
by Harriet666 keys 分享 1490258040212
很多用户在Linux 64位上使用AutoVue时会出现安装方面的问题。在Linux 64位上安装AutoVue(这是一个32位应用程序)可能很棘手,因为AutoVue将要求某些库是32位的而不是64位。在许多情况下,服务器会将由于缺少32位库的相关问题记录下来。AutoVue需要这些库:32位(libGLU,libGL,libz,libbz2,libXt,libXp,libXtst和libXrender)。
【AutoVue系列产品包含:AutoVue 3D Professional AdvancedAutoVue Electro-Mechanical ProfessionalAutoVue EDAAutoVue OfficeAutoVue 2D Professional
 
你可以通过使用locate命令来检查特定库丢失的是32位还是64位。例如,找到libGL应该返回:
/usr/lib/libGL.so 
/usr/lib/libGL.so.1 
/usr/lib/libGL.so.1.2 
/usr/lib/libGLU.so 
/usr/lib/libGLU.so.1 
/ usr / lib /libGLU.so.1.3.060501 
 
libGL的位置如下:
/usr/lib64/libGL.so.1
这将表明你已安装64位库,AutoVue还需要32位库。 
 
【本文作者慧都Elyn,转载注明出处】
未发布 超实用CAD控件CAD VCL发布v12,支持Embarcadero®RAD Studio 10.2 Tokyo丨附下载
by Harriet666 keys 分享 1497599034716
CAD VCL是一个高品质多功能且含源码的控件,它提供了几个强大的类用于为您的Delphi/C++Builder应用程序创建AutoCAD DXF, CGM, Hewlett-Packard PLT/HPGL, PDF和SVG文件。

【CAD VCL 12最新版下载>>>】


CAD VCL 12支持Embarcadero®RAD Studio 10.2 Tokyo,并支持最新的AutoCAD®DWG 2018。
 
我们发布了CAD VCL 12,它是一个Delphi和C ++ Builder的新版本CAD库。不久前Embarcadero®RAD Studio 10.2 Tokyo发布。我们很高兴地通知你,新版本的CAD VCL 12也与此开发环境兼容。
 
除了这项更新,CAD VCL还支持最新的DWG版本 - AutoCAD®DWG 2018。因此,使用CAD VCL 12创建的应用程序将能够阅读最新的图纸。
0709e112747c47a38c3156e0719e0e8aojpg
CAD VCL 12中包含的改进内容列表:
  • 支持Embarcadero®RAD Studio 10.2 Tokyo
  • 导入AutoCAD®DWG 2018
  • 改进了通过Windows图元文件导出功能
  • 导出G-code
 
你可以下载最新版本的CAD VCL来测试这些功能>>>
未发布 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
未发布 Windows 10用于Fluent Design的UWP社区工具包蓄势待发
by Harriet666 keys 分享 1504861717599
Microsoft继续为即将推出Windows 10 FCU(Fall Creators Update)在做着准备工作其中部分工作是目前正在开展的开发者工具和资源的升级。已完成的工作包括:Visual Studio 2017 15.4版已支持UWP应用使用.NET Standard 2.0;UWP社区工具包(UCT,UWP Community Toolkit)的升级已完成,可以使用Microsoft新提供的“流畅设计语言”(Fluent Design Language)。“流畅”体系最终将成为新的Windows 10用户界面。

UCT使得Windows 10开发人员及对该平台感兴趣的人可以查看UWP应用的构建方式,并试用UWP平台提供多种可用控件。UCT 2.0推出了四个新添加的控件,分别是InAppNotification、TextToolbar、Expander和Menu。其中Menu控件已完成升级,支持下划线特性和非字符串内容, 同时改进了处于非缺省位置菜单的动画和行为。

InAppNotification控件为UWP应用提供了一种通知窗口生成动作,类似于IE在下载文件时所给出的通知窗口。Textbar空间提供了富文本或Markdown格式文本的编辑功能。该控件还支持用户使用定制的Formatter对象添加对更多格式的处理功能。

Microsoft将在转向UCT第二版后不再提供对VS2015的支持,开发人员应使用VS2017。Microsoft已经给出了UCT的入门文档,并在Windows Store上提供了一些可构建UCT演示的例子应用。工具包的源代码以MIT许可提供于GitHub上,其中包括了完整的发行说明。(例子应用是使用C#编写的。)
有用(0)

未发布 HttpWatch v10.x发布,支持在Firefox 35-35版中使用HTTP/2丨附下载
by Harriet666 keys 分享 1491983832839

HttpWatch是一款集成的HTTP嗅探器,为IE和Firefox提供新的方法以查看您网站的负载和运行情况。你可以直接在浏览器中调试由web页面生成的网络流量,而无需切换到一个单独的工具。

【最新的HttpWatch点击免费下载>>>】

httpwatch v10.x新功能


密码在日志文件中被隐藏

从用户中收集的关于HTTP跟踪文件的常见问题是该文件可能包含了在登录期间输入的密码。默认情况下配置HttpWatch来隐藏提交的Web表单中的可疑密码字段:
HttpWatch
用于识别敏感字符串的子字符串列表可以编辑,并掩盖POST消息中的其他敏感字段:
HttpWatch

在Firefox35-40中支持HTTP/2

HttpWatch支持在Firefox 35-35版中使用HTTP/2
httpwatch
未发布 矢量图形引擎库VectorDraw Developer Framework更新至v7.7010.1.0丨附下载
by Harriet666 keys 分享 1489458047513
【最新版VectorDraw Developer Framework v7.7010.1.0点击下载>>>】
矢量图形引擎库VectorDraw Developer Framework更新至v7.7010.1.0。新版本针对提出的需求和bug做了大量的调整和优化。


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

  全端社区 - 最新回复
  1. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  2. Windows与Mac通过git ssh和rsync实现文件共享互传
  3. Windows与Mac通过git ssh和scp实现文件共享互传
  4. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  5. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件
  6. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  7. ReactNative获取Android/iOS的MAC/IP地址: react-native-device-info模块的安装与使用
  8. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  9. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  10. Springboot+Gradle+Mysql+Jpa最简单实例教程

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

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

OnceOA