让bugzilla离开sendmail!

Posted by 猪头小队长 | 程序设计 | Wednesday 1 June 2005 09:11
bugzilla依赖于邮件系统,默认的系统会有sendmail,但是sendmail不爽,可以替换成postfix,而有的时候,替换成postfix也是不爽,例如某些邮件服务器不接受你的postfix发过去的邮件。

这一大堆麻烦,如果让bugzilla使用已有的一个smtp服务器就可以了,例如,我有一个hdpan@hit.edu.cn的邮箱,那么以后所有bugzilla发的信都通过hdpan@hit.edu.cn发送就可以了,我们使用mx.hit.edu.cn这台smth服务器。

具体做法:
1.安装好bugzilla(具体如何安装,见其他相关文档)
2.修改$Bugzilla_DIR/defparams.pl,在@param_list中加入:

{    name => 'mailserver',    desc => 'Mail-Server assigned by Jackey in 2004.02.02!',    type => 't',    default => 'mx.hit.edu.cn'},{    name => 'mailuser',    desc => 'Mail-User assigned by Jackey in 2004.02.02!',    type => 't',    default => 'hdpan@hit.edu.cn'},{    name => 'mailpass',    desc => 'Mail-Pass assigned by Jackey in 2004.02.02!',    type => 't',    default => 'xxxxxx'}, 

3.修改$Bugzilla_DIR/Bugzilla/BugMail.pm,将

sub MessageToMTA ($;$) {   my ($msg, $rcpt_to) = (@_);

    my $sendmailparam = "";    unless (Param("sendmailnow")) {       $sendmailparam = "-ODeliveryMode=deferred";    }

    if ($enableSendMail == 1) {        open(SENDMAIL, "|/usr/lib/sendmail $sendmailparam -t -i") ||          die "Can't open sendmail";

        print SENDMAIL trim($msg) . "n";        close SENDMAIL;    }}替换为:sub MessageToMTA ($;$){        my ($msg,$rcpt_to) = @_;

        use Net::SMTP;        my $smtp_server = Param("mailserver");        my $smtp_user = Param("mailuser");        my $smtp_pass = Param("mailpass");

        my $smtp = Net::SMTP->new($smtp_server) ||        die 'Cannot connect to server '$smtp_server'';

        $smtp->auth($smtp_user,$smtp_pass);

        $smtp->mail($smtp_user);        $smtp->to($rcpt_to);        $smtp->data();        $smtp->datasend($msg);        $smtp->dataend();        $smtp->quit;}

收工!

Update:新版本(2.20)似乎自动支持了smtp方式发信,不用再这么麻烦了。 -2005-11-07 15:43
Update:新版本(2.20.1)的SMTP配置方法,参见这里 -2006-03-30 10:14

[@more@]

23 Comments

  1. Comment by yuki — 2005/11/15 @ 10:49

    队长,在2.20下怎么设置smtp发邮件阿。能不能详细说明一下。谢了

  2. Comment by Javor — 2005/11/15 @ 11:05

    直接在“参数设置”页面就有SMTP的设置。

  3. Comment by hello — 2005/11/26 @ 16:23

    thanks

    2.20版本还是没有中文汉化包,还得用2.18,真麻烦啊,又没有时间去改一下

  4. Comment by joken — 2005/12/03 @ 22:54

    2。20版有中文包

    你可以去揤一下

  5. Comment by paper — 2005/12/13 @ 16:30

    邮件接不到

    我的2.20也收不到邮件呢,请问是不是还需要什么个别配置呀?

  6. Comment by paper — 2005/12/13 @ 16:35

    求助

    补充一下,我的邮件服务器SMTP不需要认证的,我现在一封邮件也接不到。请问怎么样能测试到能收发邮件了呢?

  7. Comment by Javor — 2005/12/13 @ 17:02

    我觉得是你的smtp服务器的问题,测试一下你的SMTP服务器是否工作正常:
    测试方法:
    #telnet smtp_host 25
    EHLO staff.tixa.com
    MAIL FROM:
    RCPT TO:
    DATA
    .
    QUIT

  8. Comment by paper — 2005/12/14 @ 10:15

    多谢指教!不过我是刚找资料装上的,一切都比较菜,呵呵,请问这个命令要在哪运行呢?staff.tixa.com是不是代表我的邮件服务器呀?

  9. Comment by Javor — 2005/12/14 @ 12:10

    是的,要将那个换成你的服务器,在command模式下运行。

  10. Comment by paper — 2005/12/14 @ 12:22

    多谢多谢!我的smtp服务器连不上,我找找原因再来请教:)

  11. Comment by paper — 2005/12/15 @ 10:02

    求助

    我在注册新用户时出现了错误:Software error:
    Unknown error at E:/Perl/site/lib/Mail/Mailer.pm line 269.
    createaccount.cgi: Unknown error at E:/Perl/site/lib/Mail/Mailer.pm line 269.

    我的269行是:(defined($exe) && open($self,”|-”))
    搞不懂了,您能帮我分析一下吗?

  12. Comment by Javor — 2005/12/15 @ 11:24

    我没有怎么用过2.20,google了一下:
    http://www.nabble.com/Email-Problems-on-Windows-t477252.html
    不知能否解决你的问题。

  13. Comment by paper — 2005/12/15 @ 13:23

    多谢

    有劳有劳!我这就去看看!

  14. Comment by ee — 2005/12/16 @ 21:53

    强人啊,快帮忙吧

    弄了好几天了,mail部分就是不好用。

    2.20版,提示已经发送成功,可就是无法收到相应邮件.126,163,的都实验过了,都不可以,该怎么办啊,快没信心了!

    vipabc@126.com

  15. Comment by nicy — 2006/04/04 @ 17:15

    求助

    我也遇到这样的问题了,我也不知道如何解决,另外你提供的这个网页,我打不开呀?谢谢,帮忙分析分析。

  16. Comment by nicy — 2006/04/04 @ 17:18

    求助

    我在window XP 环境配置bugzilla 2.20.1,我同样也在注册新用户时出现了错误:Software error:
    Unknown error at E:/Perl/site/lib/Mail/Mailer.pm line 269.
    createaccount.cgi: Unknown error at E:/Perl/site/lib/Mail/Mailer.pm line 269.

    我的269行是:(defined($exe) && open($self,”|-”))
    搞不懂了,您能帮我分析一下吗?
    谢谢!

  17. Comment by Javor — 2006/04/04 @ 18:31

    Mailer.pm应该是perl的,和Bugzilla没有关系,错误的根源应该不再这行上。

    没有配过windows下的bugzilla,不好说,:)

  18. Comment by Javor — 2006/04/04 @ 18:31

    网页可以打开哦:
    http://www.simplelife.cn/blog/index.php?op=ViewArticle&articleId=312&blogId=1

  19. Comment by nicy — 2006/04/05 @ 10:54

    询问

    不好意思,我说的打不开的网页,是你上面的留言:(因为它也咨询你关于我上面的问题!)
    我没有怎么用过2.20,google了一下:
    http://www.nabble.com/Email-Problems-on-Windows-t477252.html
    不知能否解决你的问题。Javor | 15/12/2005, 11:24

  20. Comment by 小小 — 2006/05/18 @ 15:49

    也是goto &$AUTOLOAD这一行出了问题

    也是goto &$AUTOLOAD这一行出了问题???
    谢谢!

  21. Comment by tony — 2006/12/25 @ 12:16

    在win2003下安装2.23.3,注册新用户的时侯出现Unknown error at E:/Perl/site/lib/Mail/Mailer.pm line 269.
    createaccount.cgi: Unknown error at E:/Perl/site/lib/Mail/Mailer.pm line 269.
    ,救命啊。。。。

    lzy1121@citiz.net

  22. Comment by 苹苹果果 — 2007/07/05 @ 11:13

    帮帮忙哦~~

    安装好bugzill后提交bug时提示
    Internal Error
    Bugzilla has suffered an internal error. Please save this page and send it to THE MAINTAINER HAS NOT YET BEEN SET with details of what you were doing at the time this message appeared.

    URL: http://192.168.1.90/bugzilla/process_bug.cgi

    undef error - Bad file descriptor at C:/Perl/lib/CGI/Carp.pm line 314.
    但是却可以提交成功,而且可以查询。当自己给自己提交bug的时候没有问题,如果给别人提交bug的时候就会出现这种情况。
    请帮帮忙!!
    谢谢!!

  23. Comment by dddd — 2007/07/24 @ 09:52

    fjkfy

    成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。数据恢复Google优化排名窃听器手机窃听器Google排名数据恢复留学荷兰留学英国留学加拿大留学澳大利亚留学美国留学法国留学英国签证加拿大签证英国大学排名专升本留学中介鹿特丹商学院留学英国英国高中留学荷兰留学法国留学澳大利亚留学加拿大新加坡留学留学新加坡莫那什大学留学美国雅思考试出国留学托福考试阿姆斯特丹商学院出国英国硕士美国签证瑞典留学留学瑞典澳洲留学留学澳洲美国大学排名印刷印刷厂北京印刷北京印刷厂窃听器手机窃听器监听器手机监听器电话窃听器电话监听器无线窃听器无线监听器小灵通窃听器监听器手机监听器监听器手机监听器写字楼门禁系统保洁婚庆公司保洁公司

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.