I got rid of the Email::Valid dependency since writing RFC-correct email addresses is probably not a problem for most users. In my experience, misspelled usernames are a much bigger problem. I am prone to doing things like leaving out the 'k' in Junio's email address and other things that Email::Valid can't catch. Since I use mutt and the aliases file is pretty simple, I've added basic support for mutt alias files. To setup git-send-email to use a mutt aliases file for a repo, do this: git-repo-config sendemail.muttaliases <mutt_alias_file_path> More email clients/address book formats can easily be supported in the future. Signed-off-by: Eric Wong <normalperson@xxxxxxxx> --- git-send-email.perl | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) 8bc65d178dd755ecd1f3c038b975b9bbe58c1015 diff --git a/git-send-email.perl b/git-send-email.perl index 73bba19..207b1fb 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -89,6 +89,15 @@ sub gitvar_ident { my ($author) = gitvar_ident('GIT_AUTHOR_IDENT'); my ($committer) = gitvar_ident('GIT_COMMITTER_IDENT'); +my %aliases; +if (my $mutt_aliases = `git-repo-config sendemail.muttaliases`) { + chomp $mutt_aliases; + open my $ma, '<', $mutt_aliases or die "opening $mutt_aliases: $!\n"; + while (<$ma>) { if (/^alias\s+(\S+)\s+(.*)/) { $aliases{$1} = $2 } } + close $ma; +} +# aliases for more mail clients can be supported here: + my $prompting = 0; if (!defined $from) { $from = $author || $committer; @@ -112,6 +121,9 @@ if (!@to) { $prompting++; } +@to = map { $aliases{$_} || $_ } @to; +@initial_cc = map { $aliases{$_} || $_ } @initial_cc; + if (!defined $initial_subject && $compose) { do { $_ = $term->readline("What subject should the emails start with? ", -- 1.2.4.gb622a - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html