2009-12-07 133 views
3

我使用php和mysql。我的網站是在閃光燈(全閃存網站)用電子郵件驗證註冊,只有30%被激活?

我有一個網站,讓用戶註冊。註冊過程包括髮送「激活郵件」,點擊鏈接激活帳戶。

前兩週很好。在大約2000個用戶中,有1800個用戶被激活。之後,激活的用戶急劇下降到30%左右。例如:1000個用戶註冊,只有300個被激活。

起初,我發現問題是因爲電子郵件無法連接到ymail,msn和gmail用戶。 (我的大部分用戶是Ymail(雅虎),hotmail/msn(live)和gmail(gmail))。我嘗試使用ymail和hotmail註冊,但我沒有收到任何激活郵件。我聯繫了雅虎和MSN,最終我的電子郵件可以通過現在。

但是,我的註冊統計仍然顯示,激活的用戶只有大約30%,這讓我非常困惑。我聯繫我的託管公司,向他們詢問我的IP白名單。他們做到了。

我需要在以下幾個問題你的意見/幫助:

  • 如何檢查問題所在?電子郵件未送達嗎?用戶收到電子郵件,但沒有點擊激活鏈接?

我正在使用php郵件功能。這是我的頭:

$headers = 'MIME-Version: 1.0' . "\r\n"; 

    $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; 

    $headers .= 'From: Admin <\[email protected]>' . "\r\n"; 

    $headers .= 'Return-Receipt-To: Bounce <\[email protected]>' . "\r\n"; 

    $headers .= 'Reply-To: Admin <\[email protected]>' . "\r\n"; 

    $return_path = "\[email protected]\"; 

(我隱藏我的域名,我加反斜槓電子郵件內的辯論,因爲如果沒有,電子郵件不會顯示在這裏,怪異)

這有什麼不對的頭?

  • 我該怎麼做才能改善我的註冊/註冊激活流程?

回答

1

你應該通過你的回報路徑作爲mail()函數「-f」參數:

mail(
    $this->recipient, 
    $subj, 
    $this->body, 
    $this->compose_headers(), 
    '-f ' . Options::obj()->mail->return_path); 

而且,最好的結果,如果發送服務器有一個公共域名example.com ,返回路徑應該是[email protected]

無論如何,你一定要檢查日誌(/ var/log/mail *)以確切知道發生了什麼。

+0

嗨伊萬,這是我送的腳本:郵件($ TOUSER,$主題,$機構,$頭, 「-f」 $ return_path) 我正在使用PHP郵件() – mysqllearner 2009-12-07 07:23:14

+0

有什麼區別?我應該在這裏粘貼我所有的發送郵件代碼嗎? – mysqllearner 2009-12-07 07:24:30

+0

-f,並且反向DNS搜索能力(來自example .com的[email protected])與我的經驗有很大不同。 – 2009-12-07 07:27:31

0

您是否可以訪問發送註冊電子郵件的電子郵件服務器的日誌文件?任何退回的電子郵件通常回到發送服務器。通過監控日誌文件,您可以檢查並查看哪些電子郵件數量(如果有的話)仍然會反彈回來。

用戶在沒有激活電子郵件地址的情況下對您的網站有什麼樣的訪問權限?是否禁用了任何功能?是否有激勵措施來激活或使用真實的電子郵件地址?

+0

@ pygorex1:我沒有日誌文件。我在哪裏可以得到它?基本上,直到用戶帳戶被激活,用戶才能做的事情不多。 – mysqllearner 2009-12-07 07:35:04

+0

您需要詢問您的託管服務提供商有關訪問日誌文件的信息。 – leepowers 2009-12-07 07:44:44

+0

問,但我認爲需要等待24小時才能回覆。我正在使用plesk,想知道文件的位置? – mysqllearner 2009-12-07 08:17:39

1

嘗試使用gmail作爲您的smtp服務器,而不是來自域的sendmail郵件服務器。使用Gmail的SMTP將確保您的郵件發送盡力而爲。此外,除非電子郵件ID被標記爲垃圾郵件,否則Gmail不會被視爲垃圾郵件(因此請嘗試使用安全的電子郵件地址)。爲了提高singup->激活的效果,請確保電子郵件到達用戶的收件箱。

對於安全網,您可以擁有一項功能,允許用戶在出於某種原因失敗的情況下重新發送激活鏈接。

如果您使用gmail作爲smtp感到不舒服,您可以使用谷歌應用程序註冊您的域名(但這可能需要更改業務需求),您可以使用[email protected]類型的電子郵件,並仍然使用高效的gmail smtp服務器。

有許多圖書館像phpMAiler允許使用外部smtp服務器。注意通過gmail服務器的所有數據都通過SSL或TSL。

+0

使用Gmail smtp合法嗎?我聽說過phpmailer,我現在將它與swiftmailer進行比較。重新發送激活鏈接可能聽起來不錯,但是如果它無法通過他們的郵箱,它不適用於垃圾郵件點擊它正確嗎?我的意思是,它只是不會通過(嗯,這是我雖然),除非我錯了:( – mysqllearner 2009-12-07 07:38:19

0

您的示例未顯示Date標題,它是必填字段。根據我的經驗,一些郵件處理程序會拒絕沒有郵件的郵件(有些只是在當前日期中添加一個郵件)。如果您的實際代碼沒有,則嘗試添加一個並查看它是否有所不同。

搜索RFC2822上需要什麼樣的信息,

相關問題