我正在为多用户系统开发电子邮件轮询解决方案。所以用户可以在他们各自的 id 上发送电子邮件,它会被轮询并插入到数据库中。
我正在考虑两种选择:
- 基于 Perl/Unix 的电子邮件轮询器..
- 基于 java 的轮询器。
你会推荐什么..(也欢迎其他建议)
为什么不将邮件转发到进程而不是轮询?根据您使用的邮件服务器,您可以将其作为别名,甚至可以在 .forward 文件中执行。
我没有什么要补充的,但目前谷歌代码中有一个项目可以将 iwantsandy.com 重建为开源。
它位于:
http ://code.google.com/p/sandysback/
我肯定会看这个,看看他们如何解析电子邮件,并将这些电子邮件“插入数据库”
无论您使用哪种语言最有经验!
我个人非常了解 java 和 perl,对于这项任务,我会选择 perl,但差异是微不足道的。
Perl 会更短更甜,java 会花费更长的时间,但一旦数据库访问被整理出来,它可能是一个更健壮的解决方案。
我发现 Perl DBI 是一个比 JDBC 更好、更便携的数据库接口,它不会从你的代码中隐藏数据库实现,并且对版本更改等很敏感。IE 你必须为你的目标数据库拥有正确的数据库驱动程序的正确版本。
回复:投票
如果您可以选择将电子邮件转发到某个流程,我强烈建议您这样做。(转发给服务器带来的负载通常比轮询要少。)如果不是,那么轮询是下一个最好的事情。使用您最熟悉的语言查看 POP3 客户端库。
回复:语言选择
如果我打算对电子邮件进行大量解析,那么 Perl 将是我的选择。如果不涉及太多解析,那么 Java 将是我的选择;-)。
-- 在以前的生活中,我编写了一个 Perl 脚本来将传入的电子邮件(结构良好)解析为 HTML 页面并将它们发布到 Web 服务器。
你有几个选择。正如原始海报所说 - 可能最简单的方法是在别名文件中设置一个脚本条目。
然后电子邮件的正文作为标准输入传递给脚本。然后,您可以使用 perl 脚本 + Mime 模块来解析消息的各个部分,并使用它做任何您想做的事情。
还可以查看 apache james - 这是一个自定义邮件服务器。它们具有 servlet 的等价物,称为“maillets”,您可以将业务逻辑放入其中。它们通常难以在企业场景中部署,因为大多数公司不喜欢部署自定义邮件服务器。
...别名路线可能是您最好的选择。另一个注意事项 - 不保证电子邮件。如果您将其用作某种应用程序到应用程序的消息传递系统,并且您控制两端,您可能应该查看其他内容,例如 JMS 类型的消息传递。
-高手