From c2b3c767a23b2d5537dc977a87c2a5ebc386599a Mon Sep 17 00:00:00 2001 From: Ulf Angermann Date: Thu, 31 Aug 2017 08:40:50 +0200 Subject: [PATCH 1/2] fix for 501 5.5.4 HELO issue. RFC 5321-4.1.1.1 --- src/gen_smtpc.erl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/gen_smtpc.erl b/src/gen_smtpc.erl index 7bb6763..c4f450d 100644 --- a/src/gen_smtpc.erl +++ b/src/gen_smtpc.erl @@ -112,7 +112,7 @@ send_mail(From, FromPassword, To, Subject, Body, Ssl, Host, Port, State) -> % Connect to smtp server case Ssl:connect(Host, Port, Opts) of {ok, Socket} -> - Ssl:send(Socket, "HELO\r\n"), + Ssl:send(Socket, ["HELO ", proplists:get_value(hostname, Opts, guess_FQDN()), "\r\n"]), Ssl:send(Socket, "AUTH LOGIN\r\n"), timer:sleep(2000), Ssl:send(Socket, binary_to_list(base64:encode(From)) ++ "\r\n"), @@ -147,3 +147,9 @@ send_mail(From, FromPassword, To, Subject, Body, Ssl, Host, Port, State) -> io:format("ERROR: ~p~n", [Error]), {noreply, State} end. + +guess_FQDN() -> + {ok, Hostname} = inet:gethostname(), + {ok, Hostent} = inet:gethostbyname(Hostname), + {hostent, FQDN, _Aliases, inet, _, _Addresses} = Hostent, + FQDN. \ No newline at end of file From c59693f527b17b19afd20fd3d4d11f671d7a7306 Mon Sep 17 00:00:00 2001 From: Ulf Angermann Date: Wed, 25 Mar 2026 17:47:02 +0100 Subject: [PATCH 2/2] Fix SSL verify option for OTP 23+ Replace deprecated {verify, 0} with {verify, verify_none} in SSL connect options. The integer form is no longer accepted by the ssl application since OTP 23. Co-Authored-By: Claude Sonnet 4.6 --- src/gen_smtpc.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gen_smtpc.erl b/src/gen_smtpc.erl index c4f450d..d9cfcc4 100644 --- a/src/gen_smtpc.erl +++ b/src/gen_smtpc.erl @@ -104,7 +104,7 @@ send_mail(From, FromPassword, To, Subject, Body, Ssl, Host, Port, State) -> % Connection options Opts = case Ssl of ssl -> - [{delay_send, false}, {verify, 0}, {nodelay, true}]; + [{delay_send, false}, {verify, verify_none}, {nodelay, true}]; gen_tcp -> [{delay_send, false}, {nodelay, true}] end,