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.
From: MAILER-DAEMON@domain.local To: jdoe@localhost Subject: Undeliverable mail: Failed to deliver to ''
// 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
}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 SubGIS Map Server是一款地图服务器控件,它将动态地图功能添加到了GLG工具包中并能与工具包一起使用或独立使用。GLG地图服务器控件将动态地图功能添加到了GLG工具包中并能与工具包一起使用或独立使用。当与工具包一起使用时,一个综合的GIS对象将负责完成变焦、摇摄、协同转换与地图转化,还会将地图服务器整合到GLG绘图功能中。当工具包在处理地图顶端的动态图标的转换时,还能实时地对它们进行更新。
GIS Map Server更新至v3.6版本,增加了航空影像数据集等功能。

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

| 功能 | 要求 |
| 主要功能 | Windows 98或更高 最低1.2GHzPentium或兼容CPU 256MB内存 50MB可用硬盘 SVGA显卡,256色 |
| 对电影或视图截图 | Windows 2000或更高(文件格式为NTFS) 最低2GHz Pentium或兼容CPU 1GB内存 30GB可用硬盘 专业版SVGA显卡,最低显存256MB (非集成显卡) |

Dynamotive是ABB集团的一员,是一个主要部署在汽车行业的高性能实时控制系统的高档品牌供应商。Dynamotive为主要汽车制造商及其遍布欧洲、美国和亚洲的供应商提供测试设备和工具软件。
“Dynamotive在对众多的选择进行鉴定后选择了LightningChart。没有任何一种替代方案能够做到在性能方面如此接近完美。”
——软件开发经理安德鲁·普尔(Andrew Poole)
Dynamotive使用LightningChart从控制系统实时提供数据。他们在LightningChart周围建立了一个解决方案,可以同时并且持续地以多个采样率显示和记录数据。采样率从1Hz到50 kHz不等,屏幕刷新率可以调节高达50 Hz,为用户提供了关于控制过程决策所需的信息。
当被问及LightningChart的最佳优势时,Poole先生给出答复:“LightningChart的最佳功能是性能,性能和性能。”

示例:表示运行节气门循环的图像
LightningChart给予Dynamotive的主要优点是使他们能够快速开发可靠和高性能的实时数据。“除了使用LightningChart为我们的控制系统实现高性能实时数据趋势,我们可以在两周内构建一个驱动程序辅助应用程序(使车辆的驾驶员能够遵循道路简档),早期的实施需要几个月 需要尝试并获得体面的图形性能,但与LightningChart的优异性能是给定的。”软件开发经理Poole如是介绍。
Dynamotive团队并没有真的必须使用技术支持。 安德鲁·普尔(Andrew Poole):“我们是LightningChart的早期使用者,当时有一些来自Arction创始人的电子邮件让我们犹豫了,但之后,我们需要做的大部分工作都很容易实现,这是因为拥有了直接和结构合理的API。”
观看视频,了解LightningChart如何整合到Dynamotive开发的汽车遥测软件中:
| 0 | 成功 |
| 100 | 无法创建服务器插口 |
| 101 | 无法绑定服务器插口 |
| 1、5 | 连接错误 |
| 3、2、6、7 | 网络发送错误 |
| 32、31、8、9 | 网络接收错误 |
| 4 | 无法创建视频编解码器 |
| 28 | 拒绝连接 |
| 29 | 客户端PC上没有安装解码器 |
| 91 | 网络接收超时 |
Bitmap b = new Bitmap(640, 480); Graphics g = Graphics.FromImage(b); g.Clear(System.Drawing.Color.White); g.DrawRectangle(System.Drawing.Pens.Red, mx, my, mw, mh); IntPtr bh = b.GetHbitmap(); videoCapX.SetBitmapOverlay((int)bh,0,0,0xffffff,255); if(oldbh!=(IntPtr)0) DeleteObject(oldbh); oldbh = bh;
Example:vcx.VideoDeviceIndex = -2vcx.VideoSourceURL = "http://atlascam2.colorado.edu/axis-cgi/jpg/image.cgi"vcx.CaptureAudio = Falsevcx.Connected = Truevcx.Preview = True
