如何在 Erlang/OTP 中务实地处理与电子邮件相关的通信?使用 bash、python 或 Perl 脚本,可以发送电子邮件。但是,在 Erlang 中,我还没有找到专门用于代表其他应用程序发送和/或接收电子邮件的应用程序或内置函数。
在yaws中,有一个邮件应用程序位于 web 服务器的应用程序路径中。但是,在 yaws 主页上,没有专门针对此应用程序的文档。在Nitrogen Web 框架中,就电子邮件协议而言,我还没有发现任何有用的东西。
如果有人知道我可以实用地发送和/或接收邮件的库,请指导我。也可能有我不知道的非官方实现。提前致谢
问问题
2171 次
2 回答
3
我已经成功地使用smtp_fsm.erl发送电子邮件(不完全是这个版本,但这个版本是公开的)。
快速搜索显示了其他一些与 smtp 和电子邮件相关的包,但我没有使用这些包的经验。
于 2011-05-10T16:08:18.603 回答
1
如果你想用 Erlang发送电子邮件,你应该看看事务性电子邮件服务AlphaMail。
以下是如何使用Erlang 的 AlphaMail 模块发送电子邮件的示例:
Service = alphamail:email_service("YOUR-ACCOUNT-API-TOKEN-HERE").
Payload = alphamail:message_payload(
2, % Project id
alphamail:email_contact(<<"Sender Name">>, <<"from@example.com">>), % Sender
alphamail:email_contact(<<"Joe E. Receiver">>, <<"to@example.org">>, 1234), % Receiver (with receiver id)
% Any JSON serializable payload data
[
{"userId", 1234},
{"name", {struct, [
{"first", "Joe"},
{"last", "E. Receiver"},
]}},
{"dateOfBirth", 1989}
]
).
alphamail:queue(Service, Payload).
作为您的 HTML/ Comlang模板:
<html>
<body>
<b>Name:</b> <# payload.name.first " " payload.name.last #><br>
<b>Date of Birth:</b> <# payload.dateOfBirth #><br>
<# if (payload.userId != null) { #>
<a href="/sign-up">Sign Up Free!</a>
<# } else { #>
<a href="/login?id=<# payload.userId #>">Sign In</a>
<# } #>
</body>
</html>
披露:我是 AlphaMail 背后的开发者之一
于 2012-09-24T01:30:35.300 回答