3

如何在 Erlang/OTP 中务实地处理与电子邮件相关的通信?使用 bash、python 或 Perl 脚本,可以发送电子邮件。但是,在 Erlang 中,我还没有找到专门用于代表其他应用程序发送和/或接收电子邮件的应用程序或内置函数。
yaws中,有一个邮件应用程序位于 web 服务器的应用程序路径中。但是,在 yaws 主页上,没有专门针对此应用程序的文档。在Nitrogen Web 框架中,就电子邮件协议而言,我还没有发现任何有用的东西。
如果有人知道我可以实用地发送和/或接收邮件的库,请指导我。也可能有我不知道的非官方实现。提前致谢

4

2 回答 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 回答