1 頁 (共 1 頁)

[修正]黃卡系統修正電子郵件檔頭

發表於 : 2004-01-26 23:05
依夢兒
mods.db9.dk 開發的 Yellow card (黃卡系統)的架設步驟中有一段是這樣的:

代碼: 選擇全部

#-----[ OPEN ]------------------------------------------------
#
includes/smtp.php

#
#-----[ FIND ]------------------------------------------------
#
// Send the Subject Line...
fputs($socket, "Subject: $subject
");

// Now the To Header.
fputs($socket, "To: $mail_to
");

#
#-----[ REPLACE WITH ]----------------------------------------
#

// Send the Subject Line...
if (!eregi ('Subject:',$subject)) fputs($socket, "Subject: $subject
");

// Now the To Header.
if (!eregi ('To:',$headers)) fputs($socket, "To: $mail_to
");
但是經過我的實驗後發現,經過以上修改後的 smtp.php 會有問題。
原來論壇寄發給會員的電子郵件檔頭中有一段是這樣的:

Subject: 電子郵件標題
To: 收件人的電子郵件信箱
Reply-to: 收件人的電子郵件信箱
From: 寄件人的電子郵件信箱


經過修改後,論壇寄出的電子郵件檔頭就會變成這樣:

Subject: 電子郵件標題
Reply-to: 收件人的電子郵件信箱
From: 寄件人的電子郵件信箱


也就是說,電子郵件檔頭中少了一句「To: xxxx@xxxx.xxx」。
在這樣的情況下,如果你的論壇會員好死不死使用的收信軟體是 Outlook Express ,
他又有設定像下面這樣的郵件規則去擋住沒有註明收件人的電子郵件:
http://www.binbin.net/computer_tips/com ... sender.htm
http://www.binbin.net/computer_tips/com ... to_you.htm
這麼一來,論壇寄發給他的電子郵件(例如認證信)就有可能被收信軟體當作垃圾信處理,直接在伺服器中被刪除。

當然不見得每一個人都有在 Outlook Express 設什麼郵件規則。
但是你沒有設,不代表你的論壇會員也沒有設。
如果你的論壇會員中有人設了如上的郵件規則去擋垃圾信,任何論壇寄發給他的電子郵件(包括認證信)也就收不到了。

所以,為了保險起見,避免論壇寄發給會員的電子郵件被收信軟體當作垃圾信處理,請作以下修正:
(只有安裝黃卡系統的人才需要作以下修正)

搜尋 inculdes\smtp.php :

if (!eregi ('To:',$headers)) fputs($socket, "To: $mail_to
");


覆蓋為:

if (!eregi ('To:',$mail_to)) fputs($socket, "To: $mail_to
");


存檔,上傳,完工。