post-使用 gmail (SVN) 提交邮件

post-commit mails using gmail (SVN)

我已经花了很多时间了。但我还是卡住了。

我运行Ubuntu12.04.

我已经设置了 SVN,它工作正常。现在我想在每次提交时发送漂亮的电子邮件,所以我安装了 svnnotify 并应用了 --css-inlne 补丁。 (post).

低安全访问已开启,我可以使用 phpmailer 发送电子邮件。

在 google 上花了很多时间后,我问你。

我试过以下方法:

post-提交:

#!/bin/sh

REV=
REPO=

/usr/local/bin/trac-admin /var/www/trac/htdocs/share changeset added "svn" $REV

# email notifications for commits
/usr/bin/svnnotify --repos-path "$REPO" --revision "$REV"   \
    --smtp          smtp.gmail.com                          \
    --smtp-port     587                                     \
    --smtp-user     noreply@donbolli.ch                     \
    --smtp-pass     pass                                    \
    --smtp-tls                                              \
    --to            receiver@gmail.com                      \
    --from          noreply@donbolli.ch                     \
    --with-diff                                             \
    --subject-cx                                            \
    --subject-prefix        'Share: '                       \
    --handler HTML::ColorDiff                               \
    --css-inline
    2>&1 &

exit 0

结果:

donbolli@luna585:~$ ./post-commit /var/www/svn/share 9
Couldn't start TLS: SSL connect attempt failed because of handshake problems error:1409442E:SSL routines:SSL3_READ_BYTES:tlsv1 alert protocol version
 at /usr/share/perl5/SVN/Notify.pm line 2390.

所以我一直在寻找这个错误,但一无所获。

所以我尝试了另一种方法

post-提交:

#!/bin/sh

REV=
REPO=

/usr/local/bin/trac-admin /var/www/trac/htdocs/share changeset added "svn" $REV

# email notifications for commits
/usr/bin/svnnotify --repos-path "$REPO" --revision "$REV"   \
    --sendmail      /home/donbolli/sendmail.py              \
    --to            receiver@gmail.com          \
    --from          noreply@donbolli.ch                     \
    --with-diff                                             \
    --subject-cx                                            \
    --subject-prefix        'Share: '                       \
    --handler HTML::ColorDiff                               \
    --css-inline
    2>&1 &

exit 0

结果

donbolli@luna585:~$ ./post-commit /var/www/svn/share 9
Can't exec "/home/donbolli/sendmail.py": No such file or directory at /usr/share/perl5/SVN/Notify.pm line 2332.
Cannot exec /home/donbolli/sendmail.py: No such file or directory

但文件存在(并且是 755)

donbolli@luna585:~$ cat /home/donbolli/sendmail.py
#!/usr/bin/perl
use MIME::Lite;
use Net::SMTPS;

my $msg = MIME::Lite ->new (
From => 'noreply@donbolli.ch',
To => 'receiver@gmail.com',
Type => 'text/html; charset=UTF-8'
);

...

我的post-提交

#!/bin/sh

REV=
REPO=

/usr/local/bin/trac-admin /var/www/trac/htdocs/share changeset added "svn" $REV

# email notifications for commits
/usr/bin/svnnotify --repos-path "$REPO" --revision "$REV"  \
 --sendmail  /usr/sbin/sendmail      \
 --to   recriver@gmail.com          \
    --from   noreply@donbolli.ch      \
    --with-diff            \
    --subject-cx           \
    --subject-prefix  'Share: '      \
    --handler HTML::ColorDiff        \
    --css-inline
    2>&1 &

exit 0

在我按照 sendmail 说明操作后有效。

感谢xxfelixxx

install sendmail