由於很難找到答案,我認爲這可能是不可能的。如果是這樣,我想確認這是不可能的。如何在使用PHP發送電子郵件之前驗證SMTP憑證?
回答
這不是不可能的。
您可以自己編寫SMTP交互,並在SMTP協議中檢查確認是否接受了憑據。對於這種方法,您必須與SMTP服務器進行套接字級通信(例如,使用[PHP套接字]服務1)。
要了解SMTP協議如何工作,請嘗試使用Telnet手動完成此操作。
http://technet.microsoft.com/en-us/library/aa995718(v=exchg.65).aspx
我已經在使用庫來發送SMTP電子郵件,這不是問題所在。閱讀標題。 –
有使用PHPMailer最新版本做的一個非常簡單的方法。
require_once 'phpmailer/class.phpmailer.php';
require_once 'phpmailer/class.smtp.php';
$mail = new PHPMailer(true);
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'my_awesome_password';
$mail->Host = 'smtp.example.com';
$mail->Port = 465;
// This function returns TRUE if authentication
// was successful, or throws an exception otherwise
$validCredentials = $mail->SmtpConnect();
您可能需要更改端口號並啓用SSL,具體取決於目標SMTP服務。例如,Gmail,需要的SSL連接。
要啓用SSL,添加$mail->SMTPSecure = 'ssl';
注意:PHPMailer的失敗拋出異常。例如,用戶名/密碼不匹配可能會觸發異常。爲了避免錯誤信息打印在整個頁面上,將函數包裝在try/catch塊中。
$validCredentials = false;
try {
$validCredentials = $mail->SmtpConnect();
}
catch(Exception $error) { /* Error handling ... */ }
這應該是被接受的答案。它幫了我很多。我一開始也是錯誤的,直到我看到你的答案的後半部分。這對我有用。 –
- 1. 如何在發送郵件之前驗證smtp憑證?
- 2. JavaMail SMTP憑證驗證,無需實際發送電子郵件
- 3. 使用python SMTP庫憑證發送電子郵件安全
- 4. 如何使用jQuery驗證在php中發送電子郵件
- 5. 在作爲電子郵件附件發送之前驗證PDF
- 6. 如何使用angularjs和php發送電子郵件驗證?
- 7. 如何使用PHP驗證表單併發送電子郵件
- 8. 發送電子郵件之前的電子郵件格式驗證ajax
- 9. 無法使用PHP中使用GoDaddy的電子郵件憑證發送郵件
- 10. 使用java驗證smtp服務器憑證而不實際發送郵件
- 11. Android電子郵件發送驗證
- 12. Yii2發送驗證到電子郵件
- 13. 用PHP發送HTML郵件SMTP認證
- 14. 通過SMTP驗證電子郵件
- 15. 電子郵件SMTP驗證程序
- 16. 如何使用設計驗證發送兩封電子郵件?
- 17. 電子郵件驗證PHP
- 18. PHP - 電子郵件驗證
- 19. 電子郵件驗證php
- 20. PHP電子郵件驗證
- 21. PHP電子郵件驗證
- 22. 使用gmail在asp.net中從[email protected]發送電子郵件SMTP身份驗證
- 23. 在註冊用戶之前發送驗證郵件 - PHP
- 24. 發送smtp郵件沒有身份驗證使用php
- 25. 使用filter_var驗證電子郵件PHP
- 26. 使用PHP的電子郵件驗證
- 27. 使用PHP驗證電子郵件
- 28. 如何在MVC中發送電子郵件地址驗證電子郵件?
- 29. Laravel 5.1如何在註冊後發送電子郵件驗證電子郵件?
- 30. PHP-發送不帶郵件的SMTP驗證郵件()
嗯,微軟的鏈接,我聽說微軟甚至不聽所有的SMTP標準。但是你已經回答了這個問題。這是可能的,只是有點棘手。 –
@StephenSarcsamKamenar:如果你的谷歌'smtp telnet'也有很多基於Linux的教程,以及:-)我恰巧最近使用那個,所以知道它是完整的。 –