[轉載] 使用Bugzilla,你肯定會遇到的坑。
使用Bugzilla,你肯定會遇到的坑。
2018年06月01日 09:36:32 美少女程式猿
最近和幾個朋友一起做使用者態協議棧開源專案 NtyTcp ,純業餘愛好,個人情懷。剛剛開始做有好多的Bug,故搭建了一個Bugzilla,用來上傳Bug的。
有幾個開發朋友想在 bug.ntytcp.com提交bug,不能註冊,因為不能發郵件。至於為什麼不能傳送郵件?因為阿里雲把25埠封了,使用smtp不能傳送。
使用465埠傳送,發現發不出來,又找不到原因。硬著頭皮比Bugzilla的原始碼看了一下。可恨的是自己並沒有寫過perl程式碼。
於是用了兩天時間連學帶看就把bugzilla的原始碼看了一遍。然後把bugzilla郵件傳送的部分重寫了一下。先把bugzilla郵件傳送部分貼出來。
bugzilla/mailer.pm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
'use_mailer_queue' }
|
使用的sendmail($email, {transport=> $transport}), 傳送。由於系統的sendmail沒有配置好,傳送不出來。
自己寫了一版單獨用perl傳送郵件的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
相信從程式碼風格來看,就是第一次寫perl 。^_^ 。 ^_^
這版是可以傳送郵件的。
但是跟bugzilla的mailer.pm 傳送差別很大。沒辦法整合。
於是又換了一種寫法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
|
這個程式碼的風格就像那麼回事了,就寫過perl程式碼的人了 。^_^。^_^
將mailer.pm 的程式碼整合。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
|
主要是將郵件傳送方式修改了。
1 2 3 4 5 |
|
換成了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
bugzilla的程式碼還是寫的很人性化的,沒有寫過perl程式碼的,一看都能知道個大概。向Bugzilla的作者致敬。
至於郵件傳送的流程,大家可以參照rfc822,不要隨便相信網上的程式碼。