Pop3 客户端服务引擎代替 SQLMail
Pop3 客户端服务(代替 SQLMail):Pop3 类 + DB 辅助类 + 读取 XML 类 + SQL 连接对话框控件 + BLOB 转文件实用工具
序幕
我负责在我们公司管理 Microsoft SQL Server。 我们系统的一些部分不稳定,例如,我每天早上都从修复 SQLMail
(+Outlook) 开始,因为服务之间和部分工作流程的消息传递都基于这项服务。 我认为你们很多人都遇到过这项服务的问题。 这是我遇到的错误
xp_readmail
: 失败,出现操作系统错误 32 [SQLSTATE 42000]xp_findnextmsg
: 失败,出现邮件错误 0x80040108 [SQLSTATE 42000])
显然,对于大多数用户来说,???? 电子邮件发送就足够了,但对我来说并非如此,使用 XPSMTP 并未解决所有问题。 我迫切需要一个简单的 POP3 客户端。 在长期且未成功的寻找合适的应用程序之后,我自己编写了这个软件。 所以这项工作在这里发布,并包含所有源代码。
为什么它是开源的?
我不认为我写了一些杰出而完整的东西。 如果有人发现一个错误或可以改进的代码片段(每个软件都包含很多),并将更改的 diff 发送给我,我将非常感谢那个人。 版本控制由 TortoiseCVS 处理。
为什么使用 C#.NET 进行开发?
如果你想听听我的意见,它对于在 Windows 和 Windows Server 下编程很方便,特别是对于服务器应用程序。 你将需要 Microsoft .NET Framework 1.1。 或者你可以使用 POP3 客户端服务。 用于使用 POP3 的一组类的原型是从 The Code Project, C# .NET 中的 POP3 客户端 获得的。 但是,在遇到一些功能缺失后,我对其进行了重大改写。
安装过程
- 安装服务(启动 Setup.Exe 并通过按下“完成”按钮完成)
- 找到 %WINDOWS%/system32/BC_POP3Client.xml,并根据你的需要进行编辑,基本上只需要编辑
帐户
– 你将用于获取邮件sqlConnection
– 你希望它存储在哪里AttachFolder
– 附件将存储在哪里- 安装 DBObjectCreate.SQL (
sqlConnection
指向的位置) - 不要忘记在 Start>Settings>Control Panel>Administration>Services>BC_POP3Client>Login 中设置服务(默认情况下,它在系统帐户下启动,并且无法访问网络)
- 在那里,你也可以启动它。 就这些了。 享受吧。
现在关于服务的运作
对于你作为最终用户来说,最重要的表是 mail
和 mail_attchment
:它们存储有关邮件的信息。
存储过程的编写类似于 SQLMail
。
mail_findnextmsg
@msg_id INT, output gives id of unread message ([mail].[isRead] = false)
mail_readmail
@msg_id INT - which message to read
@attachments VARCHAR (1024), output – list of attachments
@originator_address VARCHAR (1024), output – senders address
@originator VARCHAR (1024), output – senders name
@date_received datetime, output – received date
@subject VARCHAR (1024), output – message subject
@recipients VARCHAR (1024), output - recipients
@message VARCHAR (8000), output – message body
参数集与 SQLMail
的过程匹配,因为我希望使实现我的解决方案变得简单 - 制作过程转储,更改调用,一切都有效。
附言:如果出现任何问题,请随时 联系 我。 我们将尝试一起解决它们。
历史
- 2005 年 11 月 11 日:初始帖子