2012-06-05 37 views
1

我參與了產品開發,用戶註冊他的公司。一旦他成爲我們產品的用戶,我們需要代表公司向其用戶發送公告,通訊等。使用密碼在php中驗證電子郵件

爲此,我們得到了他的公司電子郵件和密碼,我需要驗證此電子郵件是否有效,並且他是否爲電子郵件ID提供了正確的密碼。我'考慮兩種方法來驗證此電子郵件地址和密碼,

  • 發送測試郵件與SMTP authetication
  • 嘗試打開收件箱。

我覺得第一個比後面的要好。因爲如果用戶給出了錯誤的密碼,就有機會被視爲攻擊。

任何人都可以告訴我有沒有更好的方法來驗證給定的電子郵件及其密碼。

謝謝你,謝謝!

+4

你「得到」他的密碼?也就是說,你正在爲自己的電子郵件收集用戶的密碼?當然,這不可能是你在做什麼。這將嚴重違反我公司的安全政策,更不用說白癡了,因爲我將我的電子郵件密碼發給一個不知名的第三方......僅僅這樣的要求對我來說就足夠了,與你有任何關係。 – ghoti

+0

@ ghoti:因爲我的服務是代表他的公司向他們的用戶發送郵件。如果我沒有密碼並且接收服務器要求發件人的電子郵件密碼爲smtp auth,那麼這封郵件會被阻止嗎? – VKGS

+0

在他的辯護中,他試圖做的是代表第三方發送電子郵件。儘管他試圖做的具體事情非常不恰當,但它在接收郵件(許多CMS系統)方面肯定有先例。看起來他正在試圖做的是重新創建MailChimp之類的東西。我的帽子對那些知道里面和外面的規格的傢伙說。 Sekar,要麼完成所有的初始郵件RFC閱讀,並將其與野外的實際使用情況(可能由一些人假設主題背景不多的一年+努力)或使用像Amazon SES這樣的白標籤服務相比較。 –

回答

1

只需連接imap_open()並測試連接是否成功。

$resource = sprintf("{%s:%s/imap/ssl/novalidate-cert/notls/norsh}INBOX","imap.host",993); 
$imap = imap_open($resource, "user", "password", OP_READONLY, 1); 
if($imap) echo "it works"; 
+0

以下是收集用戶電子郵件密碼的一個原因:如果要將員工郵箱從廉價主機(他們設置自己的密碼的地方)遷移到您自己的專用郵件服務器(例如,使用imapsync),您可以節省收集此類數據的許多麻煩。新服務器上的密碼當然是自動生成的,並且用戶在第一次登錄時被迫重置密碼。 – mniess

+1

有關記錄,@ mniess(重新刪除其他人的評論);爲了真正閱讀本巡迴賽並且仔細考慮如何做出最好的貢獻,您可以獲得巨大的榮譽!如果其他人也花了一點時間,主持人可能會做很少的事情。 –