我正在寻找一种以编程方式将邮件插入特定电子邮件帐户的方法 - 使用CPanel创建和维护。
我有一个网站,为视频游戏的内部消息(使用其API)提供网络邮件界面,我希望将此服务更进一步,并在POP3服务器上提供消息。
到目前为止,我已经多种方式寻找解决方案:
使用CPanel的API插入邮件:我找不到api调用,仅用于创建新帐户(使用https://documentation.cpanel.net/display/SDK/UAPI+Functions+-+Email%3A%3Aadd_pop)这是我的首选方法,因为我而是单独留下文件系统。
手动将邮件插入文件系统:我发现,Cpanel将电子邮件数据存储在 root / mail / domain / user / 中,但我不知道确切的文件结构。我认识maildirsize文件和包含邮件的其他目录,但我不知道maildirsize文件的结构(似乎包含2个整数除以每行的空格),而且邮件文件的文件名也不明显。这是文件名的示例:
1422094110.H186037P182351.hosting-server-domain.com,S=15645
我宁愿使用此方法作为备份方法,因为很少(或我没有找到任何有用的)文档可用。
只需使用自定义标头通过电子邮件发送所有邮件:这是最简单的方法,但托管服务提供商的反垃圾邮件政策非常严格,而且外发邮件的数量有限。
实现自己的POP3服务器:我玩@cleong的PHP实现(https://stackoverflow.com/a/11973533/1030464),虽然它在localhost上运行,但我不确定它是不是一个兜风在实况页面上。我发现了一个Perl实现,这可能值得一试,但我从未使用过Perl,在学习如何实现和集成该模块之前,我宁愿查看另一个解决方案。
感谢您阅读所有这些内容,
巴林特
答案 0 :(得分:3)
听起来好像是使用Maildir格式存储电子邮件。这使得插入邮件相当简单。有关详细信息,请参阅Maildir specification,但总结:
.../Maildir/tmp/
.../Maildir/new
。这个重命名步骤确保邮件软件只能看到完整形成的邮件 - 也就是说,当你编写文件的一半时,没有其他进程会尝试查看文件。就是这样!