OK, I think I understand the problem and would like to propose a
solution. But first of all, this is how I'm calling the program
inside post-commit:
/usr/local/svn/gds/hooks/commit-email.pl "$REPOS" "$REV" --from "My
Server Name <noreply@mydomain.com>" -s [abcdefg] gdelfino@umich.com
(and other addresses)
In the script itself, the only configuration that I did was in line 56:
my $svnlook = "/usr/local/bin/svnlook";
With this configuration emails are being sent with incorrect headers.
Proposed solution:
Considering that in line 208 we have:
elsif ($arg eq '--stdout')
{
$current_project->{stdout} = 1;
}
And in line 715 we have:
sub new_project
{
return {email_addresses => [],
from_address => '',
hostname => '',
log_file => '',
match_regex => '.',
reply_to => '',
subject_prefix => '',
show_diff => 1,
stdout => 0};
}
And that "defined $stdout" is true when $stdout is equal to number 0
Then I propose this change in commit-email.pl:
***************
*** 546,554 ****
}
my @head;
my $formatted_date;
! if (defined $stdout)
{
$formatted_date = strftime('%a %b %e %X %Y', localtime());
push(@head, "From $mail_from $formatted_date\n");
}
--- 546,554 ----
}
my @head;
my $formatted_date;
! if (defined $stdout && $stdout == 1)
{
$formatted_date = strftime('%a %b %e %X %Y', localtime());
push(@head, "From $mail_from $formatted_date\n");
}
Agree? Otherwise my notifications are being send screwed up with
double From headers.
Regards,
Gustavo Delfino
On Aug 12, 2007, at 11:59 AM, John Peacock wrote:
> Gustavo Delfino wrote:
>> John, I made that assumption because somehow the message was actually
>> delivered with the incorrect header. I'll continue to do more
>> tests to
>> figure out what went wrong.
>
> You need to describe exactly how you executed the script itself
> (and please keep
> the discussion on the list). In particular, if you passed --stdout
> to the
> script, even if you set $sendmail or $smtp_server, then that takes
> precedence:
>
> # Sendmail path, or SMTP server address.
> # You should define exactly one of these two configuration variables,
> # leaving the other commented out, to select which method of sending
> # email should be used.
> # Using --stdout on the command line overrides both.
> ...
> " --stdout Spit the message in mbox format to stdout.
> \n",
>
> The important clue is that the RFC-2820 "From:" header must contain
> a true
> e-mail address, e.g.:
>
> "John Peacock" <jpeacock@rowman.com>
>
> and must not contain a formatted date field at all. If your
> message had the
> date appended, you called the script erroneously...
>
> John
- application/pkcs7-signature attachment: smime.p7s
Received on Sun Aug 12 18:25:45 2007