Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 从erlang发送邮件_Email_Ubuntu_Erlang - Fatal编程技术网

Email 从erlang发送邮件

Email 从erlang发送邮件,email,ubuntu,erlang,Email,Ubuntu,Erlang,我在ubuntu 10.10中工作,使用Erlang。 我的目标是编写一个代码,以便从Erlang发送邮件 这是我的代码: -module(mailer). -compile(export_all). send(Destination, Subject, Body) -> D = string:join(lists:map( fun(Addr) -> binary_to_list(Addr) end, Destination ), " " ),

我在ubuntu 10.10中工作,使用Erlang。
我的目标是编写一个代码,以便从Erlang发送邮件

这是我的代码:

-module(mailer).

-compile(export_all).


send(Destination, Subject, Body) ->
    D = string:join(lists:map( fun(Addr) -> binary_to_list(Addr) end, Destination ), " " ),
    S = io_lib:format("~p",[binary_to_list(Subject)]),
    B = io_lib:format("~p",[binary_to_list(Body)]),
    os:cmd("echo "" ++ B ++ "" | mail -s "" ++ S ++ "" " ++ D).
要执行我尝试使用的send函数:

Erlang R13B03 (erts-5.7.4) [source] [rq:1] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
1> mailer:send([<<"testFrom@mail.com">>, <<"testto@yahoo.fr">>], <<"hello">>, <<"Hello guys">>..                        
"/bin/sh: mail: not found\n"

“邮件”命令似乎在您的系统中不可用。例如,请参阅如何安装(或自己用谷歌搜索)。

我建议使用erlang中现有的smtp库。是我过去用过的。发送电子邮件非常简单:


gen_smtp_客户端:发送({“whatever@test.com", ["andrew@hijacked.us"],
“主题:测试\r\n从:安德鲁·汤普森\r\n到:某个花花公子\r\n\r\n这是电子邮件正文”},
[{relay,“smtp.gmail.com”},{username,“me@gmail.com“},{password,“mypassword”}])。

1您可以尝试使用Erlang提供的Sendmail,如下所示-

2你可以使用

3您可以尝试通过RFC使用“SMTP.gmail”实现简单SMTP客户端,并尝试创建如下内容:

connect() ->
  {ok, Socket} = ssl:connect("smtp.gmail.com", 465, [{active, false}], 1000),
  recv(Socket),
  send(Socket, "HELO localhost"),
  send(Socket, "AUTH LOGIN"),
  send(Socket, binary_to_list(base64:encode("me@gmail.com"))),
  send(Socket, binary_to_list(base64:encode("letmein"))),
  send(Socket, "MAIL FROM: <me@gmail.com>"),
  send(Socket, "RCPT TO: <you@mail.com>"),
  send(Socket, "DATA"),
  send_no_receive(Socket, "From: <me@gmail.com>"),
  send_no_receive(Socket, "To: <you@mail.com>"),
  send_no_receive(Socket, "Date: Tue, 20 Jun 2012 20:34:43 +0000"),
  send_no_receive(Socket, "Subject: Hi!"),
  send_no_receive(Socket, ""),
  send_no_receive(Socket, "This was sent from Erlang. So simple!"),
  send_no_receive(Socket, ""),
  send(Socket, "."),
  send(Socket, "QUIT"),
  ssl:close(Socket).
connect()->
{ok,Socket}=ssl:connect(“smtp.gmail.com”,465,[{active,false}],1000),
recv(插座),
发送(套接字,“HELO localhost”),
发送(套接字,“身份验证登录”),
发送(套接字,二进制\u到\u列表(base64:encode(“me@gmail.com"))),
发送(套接字,二进制地址列表(base64:encode(“letmein”)),
发送(套接字,“邮件发件人:”),
发送(套接字,“RCPT到:”),
发送(套接字,“数据”),
发送或接收(套接字,“发件人:”),
发送/否/接收(套接字,“至:”),
发送或接收(插座,“日期:2012年6月20日星期二20:34:43+0000”),
发送或接收(套接字,“主题:嗨!”),
发送/不发送/接收(套接字“”,
send_no_receive(Socket,“这是从Erlang发送的,太简单了!”),
发送/不发送/接收(套接字“”,
发送(套接字“.”,
发送(套接字,“退出”),
ssl:关闭(套接字)。

更多详细信息-

sudo apt get install-y mail
:)
connect() ->
  {ok, Socket} = ssl:connect("smtp.gmail.com", 465, [{active, false}], 1000),
  recv(Socket),
  send(Socket, "HELO localhost"),
  send(Socket, "AUTH LOGIN"),
  send(Socket, binary_to_list(base64:encode("me@gmail.com"))),
  send(Socket, binary_to_list(base64:encode("letmein"))),
  send(Socket, "MAIL FROM: <me@gmail.com>"),
  send(Socket, "RCPT TO: <you@mail.com>"),
  send(Socket, "DATA"),
  send_no_receive(Socket, "From: <me@gmail.com>"),
  send_no_receive(Socket, "To: <you@mail.com>"),
  send_no_receive(Socket, "Date: Tue, 20 Jun 2012 20:34:43 +0000"),
  send_no_receive(Socket, "Subject: Hi!"),
  send_no_receive(Socket, ""),
  send_no_receive(Socket, "This was sent from Erlang. So simple!"),
  send_no_receive(Socket, ""),
  send(Socket, "."),
  send(Socket, "QUIT"),
  ssl:close(Socket).