つづき
Minimal Erlang SMTP, POP3 server code - Oliver Wyman Labs: Technical
のソース。
% darcs get http://www.lshift.net/~tonyg/erlang-smtp/ Copying patch 14 of 14... done. Applying patch 14 of 14... done. Finished getting. % cd erlang-smtp % make erlc -I include -o ebin -Wall +debug_info src/generic_tcp_server.erl erlc -I include -o ebin -Wall +debug_info src/pop3_server.erl erlc -I include -o ebin -Wall +debug_info src/pop3_server_session.erl erlc -I include -o ebin -Wall +debug_info src/rfc2822.erl erlc -I include -o ebin -Wall +debug_info src/smtp_server.erl erlc -I include -o ebin -Wall +debug_info src/smtp_server_session.erl src/smtp_server_session.erl:48: Warning: function reply_multi/3 is unused erlc -I include -o ebin -Wall +debug_info src/smtp_util.erl % cd ebin;ls generic_tcp_server.beam pop3_server.app pop3_server.beam pop3_server_session.beam rfc2822.beam smtp_server.app smtp_server.beam smtp_server_session.beam smtp_util.beam % erl Eshell V5.6.2 (abort with ^G) 1> smtp_server:start(). ok
で、
erlang-smtp/ebin/smtp_server.app
に
{application,smtp_server, [{description,"SMTP Server"}, {vsn, "0.0"}, {modules,[ generic_tcp_server, smtp_server, smtp_server_session ]}, {applications,[kernel,stdlib]}, {mod, {smtp_server, []}}, {env, [{listen_host, "0.0.0.0"}, {listen_port, 8025}]} ]}.
と書いてあるので、ポートは8025
hokari% telnet localhost 8025 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 Hi there EHLO 250 bogus.smtp.server.domain You have reached an SMTP service
thunderbirdで外のアドレスへのメールを送信できた。
ここのソースをみると作りかけなかんじ。
handle_command("EHLO", _ClientDomain, State) -> ServerDomain = "bogus.smtp.server.domain", %% FIXME {noreply, reply(250, ServerDomain ++ " You have reached an SMTP service", reset_buffers(State))};