2016-06-19 47 views
0

我花了很多時間。但我仍然堅持。使用Gmail(SVN)post-commit郵件

我運行Ubuntu 12.04。

我建立了SVN,它工作正常。現在我想在每次提交時發送很好的電子郵件,所以我安裝了svnnotify並應用了--css-inlne補丁。 (post)。

安全性較低,我可以使用phpmailer發送電子郵件。

在googleing上花了很多時間之後,我問你。

我已經試過如下:

後提交

#!/bin/sh 

REV=$2 
REPO=$1 

/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  [email protected]      \ 
    --smtp-pass  pass         \ 
    --smtp-tls            \ 
    --to   [email protected]      \ 
    --from   [email protected]      \ 
    --with-diff            \ 
    --subject-cx           \ 
    --subject-prefix  'Share: '      \ 
    --handler HTML::ColorDiff        \ 
    --css-inline 
    2>&1 & 

exit 0 

結果:

[email protected]:~$ ./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. 

所以我一直在尋找這個錯誤,但一無所獲。

所以,我想另一種方法

後提交:在

[email protected]:~$ ./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 

#!/bin/sh 

REV=$2 
REPO=$1 

/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   [email protected]   \ 
    --from   [email protected]      \ 
    --with-diff            \ 
    --subject-cx           \ 
    --subject-prefix  'Share: '      \ 
    --handler HTML::ColorDiff        \ 
    --css-inline 
    2>&1 & 

exit 0 

的結果,但該文件存在(並755)

[email protected]:~$ cat /home/donbolli/sendmail.py 
#!/usr/bin/perl 
use MIME::Lite; 
use Net::SMTPS; 

my $msg = MIME::Lite ->new (
From => '[email protected]', 
To => '[email protected]', 
Type => 'text/html; charset=UTF-8' 
); 

... 
+0

您還沒有指定掛鉤的代碼。 – bahrep

+0

你是什麼意思? Post-commit是鉤子 –

+0

看看'SVN :: Notify'的內核,它看起來像'sendmail'參數期望實際的sendmail命令(我的系統上是/ usr/bin/sendmail)的路徑,你可能需要安裝。 http://stackoverflow.com/questions/10359437/sendmail-how-to-configure-sendmail-on-ubuntu – xxfelixxx

回答

0

我的提交後;

#!/bin/sh 
 

 
REV=$2 
 
REPO=$1 
 

 
/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" \t \ 
 
\t --sendmail \t \t /usr/sbin/sendmail \t \t \t \t \t \t \ 
 
\t --to \t \t \t [email protected]  \t \t \t \t \ 
 
    --from \t \t \t [email protected] \t \t \t \t \t \t \ 
 
    --with-diff \t \t \t \t \t \t \t \t \t \t \t \t \ 
 
    --subject-cx \t \t \t \t \t \t \t \t \t \t \t \ 
 
    --subject-prefix \t \t 'Share: ' \t \t \t \t \t \t \ 
 
    --handler HTML::ColorDiff \t \t \t \t \t \t \t \t \ 
 
    --css-inline 
 
    2>&1 & 
 

 
exit 0

作品後,我跟着sendmail的指令。

由於xxfelixxx

install sendmail

+0

太棒了!很高興它的工作。 – xxfelixxx

+0

用法說sendmail可執行文件。我不知道這意味着你必須使用sendmail,我認爲你可以在那裏使用任何可執行文件。再次感謝你! –