From: Jari Aalto <jari.aalto@cante.net>
To: git@vger.kernel.org
Subject: [PATCH] git-send-email.perl - Fix 550 EHLO argument does not match calling host
Date: Sat, 13 Mar 2010 01:04:39 +0200 [thread overview]
Message-ID: <87hbolta48.fsf_-_@jondo.cante.net> (raw)
In-Reply-To: 87r5nptdfh.fsf@jondo.cante.net
Add new function maildomain() which returns FQDN for use in
send_message(). The value is passed to Net::SMTP HELO/EHLO handshake.
The default value in Net::SMTP may not get through:
Net::SMTP=GLOB(0x267ec28)>>> EHLO localhost.localdomain
Net::SMTP=GLOB(0x267ec28)<<< 550 EHLO argument does not match calling host
whereas using the FQDN, the result is:
Net::SMTP=GLOB(0x15b8e80)>>> EHLO host.example.com
Net::SMTP=GLOB(0x15b8e80)<<< 250-host.example.com Hello host.example.com [192.168.1.7]
Signed-off-by: Jari Aalto <jari.aalto@cante.net>
---
git-send-email.perl | 52 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 50 insertions(+), 2 deletions(-)
This patch is applied *after* the other 2 sent in this thread.
diff --git a/git-send-email.perl b/git-send-email.perl
index 6af7bd3..2eabed6 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -834,6 +834,46 @@ sub sanitize_address
}
+# Returns the local Fully Qualified Domain Name (FQDN) if available,
+# If this is not given to EHLO, the receiving SMTP may deny connection
+# Here is an example of Net::SMTP without explicit Helo: it
+# uses by default "localhost.localdomain"
+#
+# Net::SMTP=GLOB(0x267ec28)>>> EHLO localhost.localdomain
+# Net::SMTP=GLOB(0x267ec28)<<< 550 EHLO argument does not match calling host
+
+sub maildomain ()
+{
+ my $maildomain;
+ eval "use Net::Domain";
+
+ unless ( $@ ) {
+ for my $host ( qw(mailhost localhost) ) {
+ my $smtp = Net::SMTP->new($host);
+ if (defined $smtp) {
+ my $domain = $smtp->domain;
+ $smtp->quit;
+
+ $maildomain = $domain
+ unless $^O eq 'darwin' && $domain =~ /\.local$/;
+
+ last if $maildomain;
+ }
+ }
+ }
+
+ unless ($maildomain) {
+ eval "use Net::Domain";
+ unless ( $@ ) {
+ my $domain = Net::Domain::domainname();
+ $maildomain = $domain
+ unless $^O eq 'darwin' && $domain =~ /\.local$/;
+ }
+ }
+
+ $maildomain;
+}
+
# Returns 1 if the message was sent, and 0 otherwise.
# In actuality, the whole program dies when there
# is an error sending a message.
@@ -917,6 +957,8 @@ X-Mailer: git-send-email $gitversion
}
}
+ my $maildomain;
+
if ($dry_run) {
# We don't want to send the email.
} elsif ($smtp_server =~ m#^/#) {
@@ -936,13 +978,18 @@ X-Mailer: git-send-email $gitversion
if ($smtp_encryption eq 'ssl') {
$smtp_server_port ||= 465; # ssmtp
require Net::SMTP::SSL;
- $smtp ||= Net::SMTP::SSL->new($smtp_server, Port => $smtp_server_port);
+ $maildomain = maildomain() || "localhost.localdomain";
+ $smtp ||= Net::SMTP::SSL->new($smtp_server,
+ Hello => $maildomain,
+ Port => $smtp_server_port);
}
else {
require Net::SMTP;
+ $maildomain = maildomain() || "localhost.localdomain";
$smtp ||= Net::SMTP->new((defined $smtp_server_port)
? "$smtp_server:$smtp_server_port"
: $smtp_server,
+ Hello => $maildomain,
Debug => $debug_net_smtp);
if ($smtp_encryption eq 'tls' && $smtp) {
require Net::SMTP::SSL;
@@ -962,9 +1009,10 @@ X-Mailer: git-send-email $gitversion
}
if (!$smtp) {
- die "Unable to initialize SMTP properly. Check config. ",
+ die "Unable to initialize SMTP properly. Check config and use --smtp-debug. ",
"VALUES: server=$smtp_server ",
"encryption=$smtp_encryption ",
+ "maildomain=$maildomain",
defined $smtp_server_port ? "port=$smtp_server_port" : "";
}
--
1.7.0
next prev parent reply other threads:[~2010-03-12 23:05 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-12 20:07 [PATCH] git-send-email.perl: improve error message in send_message() Jari Aalto
2010-03-12 21:53 ` [PATCH] git-send-email.perl: add option --smtp-debug Jari Aalto
2010-03-12 23:04 ` Jari Aalto [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-03-10 15:57 [PATCH] Do not strip empty lines / trailing spaces from a commit message template Sebastian Schuberth
2010-03-11 8:12 ` Jeff King
2010-03-11 8:31 ` Jeff King
2010-03-11 20:46 ` Junio C Hamano
2010-03-12 17:07 ` Sebastian Schuberth
2010-03-12 23:13 ` Junio C Hamano
2010-03-13 17:36 ` [PATCH] git-send-email.perl - Fix 550 EHLO argument does not match calling host Jari Aalto
2010-03-13 22:32 ` Junio C Hamano
2010-03-13 23:56 ` Jari Aalto
2010-03-14 6:28 ` Junio C Hamano
2010-03-14 10:19 ` Jari Aalto
2010-03-14 12:09 ` Junio C Hamano
2010-03-14 14:55 ` Jari Aalto
2010-03-14 14:59 ` Jari Aalto
2010-03-14 10:21 ` Jari Aalto
2010-03-14 11:55 ` Junio C Hamano
2010-03-14 14:41 ` Jari Aalto
2010-03-14 15:03 ` Jari Aalto
2010-03-14 13:17 ` Jakub Narebski
2010-03-14 14:52 ` Jari Aalto
2010-03-14 15:16 ` [PATCH 3/3] " Jari Aalto
2010-03-14 19:53 ` Jakub Narebski
2010-03-14 20:33 ` [PATCH] " Jari Aalto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87hbolta48.fsf_-_@jondo.cante.net \
--to=jari.aalto@cante.net \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.