如何在PHP中发送电子邮件之前验证SMTP凭据?
因为很难找到答案,我想这可能是不可能的。如果是这样,我想确认这是不可能的。这不是不可能的 您可以自己编程SMTP交互,并在SMTP协议中检查凭据是否已被接受。对于这种方法,您必须与SMTP服务器进行套接字级通信(例如,使用[PHP套接字]服务) 要了解SMTP协议的工作原理,请尝试手动使用Telnet执行一次 PHP函数不支持SMTP身份验证如何在PHP中发送电子邮件之前验证SMTP凭据?,php,smtp,phpmailer,Php,Smtp,Phpmailer,因为很难找到答案,我想这可能是不可能的。如果是这样,我想确认这是不可能的。这不是不可能的 您可以自己编程SMTP交互,并在SMTP协议中检查凭据是否已被接受。对于这种方法,您必须与SMTP服务器进行套接字级通信(例如,使用[PHP套接字]服务) 要了解SMTP协议的工作原理,请尝试手动使用Telnet执行一次 PHP函数不支持SMTP身份验证 可以考虑第三方库,例如 或者你可以试试这个脚本,有一个非常简单的方法,可以使用最新版本的 您可能需要更改端口号并启用SSL,具体取决于目标SMTP服务
可以考虑第三方库,例如
或者你可以试试这个脚本,有一个非常简单的方法,可以使用最新版本的 您可能需要更改端口号并启用SSL,具体取决于目标SMTP服务。例如,Gmail需要SSL连接 要启用SSL,请添加
$mail->SMTPSecure='SSL'代码>
注意:PHPMailer在失败时抛出异常。例如,用户名/密码不匹配可能会触发异常。为了避免错误消息被打印到整个页面,请将函数包装在try/catch块中
$validCredentials = false;
try {
$validCredentials = $mail->SmtpConnect();
}
catch(Exception $error) { /* Error handling ... */ }
我已经在使用库发送SMTP电子邮件,这不是问题所在。阅读标题。嗯,微软链接,我听说微软甚至没有听所有的SMTP标准。但你已经回答了这个问题。有可能,只是有点棘手。@StephenSarcsamKamenar:如果你在谷歌上搜索“smtp telnet”,那么也有很多基于Linux的教程:-)我最近碰巧使用了这个教程,所以知道它已经完成了。这应该是可以接受的答案。这对我帮助很大。在看到你回答的下半部分之前,我一开始也会出错。这对我很有用。这是我在过去几天里一直在寻找的答案谢谢@caiosm005
$validCredentials = false;
try {
$validCredentials = $mail->SmtpConnect();
}
catch(Exception $error) { /* Error handling ... */ }