<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ZT文萃

    本博不原創,轉帖自己感興趣那些事人物,什么入眼貼什么,隨心所欲。
    posts - 93, comments - 5, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    讓bugzilla使用SMTP發郵件

    Posted on 2013-09-27 14:19 ZT文萃 閱讀(689) 評論(0)  編輯  收藏
    From
    http://blog.chinaunix.net/uid-209416-id-2410724.html


    本文源于http://cranesss.gjjblog.com/archives/884277/

    但原文有錯誤,并且密碼為明文不安全,對其做了修改,適用版本:2.25,主要方法是修改BugMail.pm并做SMTP的測試,請確保你的server能夠連通smtp郵件服務器

    具體做法:
    一、安裝好bugzilla(具體如何安裝,見其他相關文檔)

    二,測試第三方郵件服務器SMTP發送郵件:

    具體方法是,使用telnet,以smtp.163.com為例,其他請參考以下鏈接:

    http://search.csdn.net/c/blog.csdn.net/cjjky/archive/2007/02/23/1513083.aspx

    假設帳號是test@163.com,密碼為test,

    1)root下使用perl -MMIME::Base64 -e 'print encode_base64("test")',把test換成實際的用戶名或密碼,記下返回的字串(這里是dGVzdA==),不同的smtp server,有的要求用戶名是@前的(比如test),有的要求是全部(如test@163.com),可以參考郵件提供商關于outlook等smtp客戶端的設置.

    2) telnet smtp.163.com 25 #25為163郵箱的smtp服務端口

         Trying 202.108.5.83...

    Connected to smtp.163.com.

    Escape character is '^]'.

    220 163.com Anti-spam GT for Coremail System (163com[071018])

         EHLO smtp.163.com

         250-mail

    250-PIPELINING

    250-AUTH LOGIN PLAIN

    250-AUTH=LOGIN PLAIN

    250 8BITMIME

    AUTH LOGIN

    334 dXNlcm5hbWU6

    dGVzdA==   #使用步聚1,得到的用戶名字符串

         334 UGFzc3dvcmQ6

         dGVzdA==   #使用步聚1,得到的密碼字符串

         235 Authentication successful

              MAIL FROM:<test@163.com>         # FROM選項,<>里的必須是現在用的郵件名

    250 Mail OK

    RCPT TO:<test@163.com>               #TO 選項,發給誰

    250 Mail OK

    DATA                                                     #準備填充郵件體

    354 End data with <CR><LF>.<CR><LF>    #<回車>.<回車>結束

    TO: test@163.com                                       

    FROM: test@163.com

    SUBJECT: test by telnet/smtp

     

    test, just a test.                                            

    .                                                                      

    250 Mail OK queued as smtp10,wKjADQ2ApxRnnqBE0CWaEw==.38326S3                

    NOOP                                                           

    250 OK

    QUIT                                                           

    221 Closing connection. Good bye.

    Connection closed by foreign host.

    看有沒有收到郵件,若測試成功,說明smtp server可以使用,記下perl生成的用戶名和密碼的字串,下方我稱之為用戶名密文,密碼密文

    三、修改$Bugzilla_DIR/Bugzilla/BugMail.pm,做如下修改:

    增加新的郵件發送方法:

    sub MessageToMTA {


         my ($msg) = (@_);
         return if (Param('mail_delivery_method') eq "none");

         my ($header, $body) = $msg =~ /(.*?\n)\n(.*)/s ? ($1, $2) : ('', $msg);
         my $headers;

         if (Param('utf8') and (!is_7bit_clean($header) or !is_7bit_clean($body))) {
             ($headers, $body) = encode_message($msg);
         } else {
             my @header_lines = split(/\n/, $header);
             $headers = new Mail::Header \@header_lines, Modify => 0;
         }

         # Use trim to remove any whitespace (incl. newlines)
         my $rcpt_to = trim($headers->get('to'));

         use Net::SMTP;
         my $smtp_server = 'smtp.163.com';
         my $smtp_user = 'test@163.com'; #這里用戶名是全的



         my $encode_smtpuser ='dGVzdA=='; #
    用戶名密文
         my $encode_smtppass = 'dGVzdA==';
    #密碼密文,用密文比明文enconde安全

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

         my $result = $smtp->command('AUTH','LOGIN');
         my $answer = $smtp->getline();
         # 334 VXNlcm5hbWU6

         $result = $smtp->command($encode_smtpuser);
         $answer = $smtp->getline();
         # 334 UGFzc3dvcmQ6
      
         $result = $smtp->command($encode_smtppass);
         $answer = $smtp->getline();
         # 235 Authentication successful
         # or 535 Authentication failed
         if ($answer =~ /535/i)
         {print "Sorry,Authentication failed!n";exit;}

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

    這個方法與原來的方法重名,所以需要將原來的方法注釋掉或者修改成另外一個名字,這樣就能使用這個新的方法發送郵件了。

    注意黑體部分,將他們替換成你自己的相應的數值。這是將所需參數寫死在這里,就不能在配置界面進行配置了,如果需要再次修改這些參數,需要直接修改這個文件。而設置界面中的關于郵件發送方式的設置(sendmail/smtp/qmail..等)將不起作用了。

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久永久免费人妻精品| 国产A∨免费精品视频| 免费专区丝袜脚调教视频| 久久久久亚洲AV无码专区首| 特a级免费高清黄色片| 亚洲人成人无码网www国产| 色吊丝性永久免费看码| 日韩亚洲精品福利| 免费无码国产在线观国内自拍中文字幕 | 青柠影视在线观看免费| 亚洲一区二区三区影院| 免费无码一区二区三区蜜桃| 亚洲av之男人的天堂网站| 99精品免费观看| 亚洲国产av高清无码| 最近最好的中文字幕2019免费| 亚洲欧洲精品成人久久曰| 无码国模国产在线观看免费| 美女视频黄频a免费| 亚洲国模精品一区| 成人免费区一区二区三区| 亚洲国产精品线在线观看| 美女被cao免费看在线看网站| 亚洲国产精品无码久久98| 亚洲午夜无码片在线观看影院猛| ssswww日本免费网站片| 亚洲AV无码成人精品区在线观看| 欧洲人成在线免费| 亚洲日本人成中文字幕| 日批日出水久久亚洲精品tv| 女同免费毛片在线播放| 亚洲国产成人91精品| 国产gav成人免费播放视频| 国产免费久久精品丫丫| 亚洲视频中文字幕在线| 四虎在线免费播放| 9久久免费国产精品特黄| 亚洲人成片在线观看| 亚洲国产综合人成综合网站| 免费看又黄又无码的网站| 狼人大香伊蕉国产WWW亚洲|