如何在服务器上接收邮件?使用Python还是Perl更好?

1 投票
4 回答
2874 浏览
提问于 2025-04-16 09:01

我查了很多文章,但找不到关于服务器之间接收邮件的内容。我想写一个程序或者一些代码,专门用来接收邮件,而不是SMTP服务器或者其他东西。

假设我有一个域名叫example.com,一个Gmail用户user@gmail.com给我发送了一封邮件到admin@example.com,或者一个Yahoo用户user@yahoo.com给我发送了一封邮件到test@example.com。那么,我该怎么做才能接收到这些邮件呢?我更倾向于用Python或Perl来写这段代码。

祝好,
大卫

4 个回答

1

在Perl语言中:

有一个叫做Net::SMTP的库(包括Net::SMTP::Server)。

这里有一个使用它的例子:http://wiki.nil.com/Simple_SMTP_server_in_PERL

1

“reveive” 这个词其实是错的。我不太确定你是想说“receive”(接收)还是“retrieve”(获取)。

如果你是想说“receive”,那么尽管你说不需要,但你可能确实需要一个SMTP服务器。这个SMTP服务器会在电脑上运行,负责监听其他SMTP服务器发来的网络请求,这些请求是为了把邮件送到你的电脑上。

然后,SMTP服务器通常会把邮件放在一个目录里,这样收件人就可以查看了。它们通常可以配置(通常会和一些工具比如Procmail一起使用),来处理收到的邮件(比如把邮件传给某个程序进行处理,这样你就不需要自己写一个完整的SMTP服务器来捕获一些邮件了)。

另一方面,如果你是想说“retrieve”,那么你可能需要找一个库,让你的程序可以作为IMAP或POP客户端使用。这些协议是用来远程访问邮箱的。

2

这里有两个链接,分别指向Python的官方文档和一个关于smtpd的教程。

第一个链接是Python官方文档,里面有关于smtpd库的详细介绍,你可以在这里找到很多有用的信息,帮助你理解这个库的用法。

第二个链接是Doug Hellmann的网站,提供了关于smtpd的更多教程和示例,适合想深入学习的人。

撰写回答