如何在Erlang / OTP中实际处理与电子邮件相关的通信?
使用bash,python或Perl脚本,可以发送电子邮件。但是,在Erlang中,我还没有找到专门用于代表其他应用程序发送和/或接收电子邮件的应用程序或内置函数。
在 yaws 中,有一个邮件应用程序位于Web服务器的应用程序路径中。但是,在yaws主页上,没有专用于此应用程序的文档。在 Nitrogen Web framework 中,就电子邮件协议而言,我发现没什么用处。
如果有人知道我可以用来实际发送和/或接收邮件的图书馆,请指导我。也可能有非官方的实现,我不知道。
谢谢,提前
答案 0 :(得分:3)
我已成功使用smtp_fsm.erl发送电子邮件(不完全是此版本,但此版本可公开访问)。
快速搜索显示了其他一些与smtp和电子邮件相关的软件包,但我没有任何相关经验。
答案 1 :(得分:1)
如果您想使用Erlang 发送电子邮件,请查看交易电子邮件服务AlphaMail。
以下是如何使用AlphaMail module for Erlang发送电子邮件的示例:
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背后的开发者之一