Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中发送电子邮件之前验证SMTP凭据?_Php_Smtp_Phpmailer - Fatal编程技术网

如何在PHP中发送电子邮件之前验证SMTP凭据?

如何在PHP中发送电子邮件之前验证SMTP凭据?,php,smtp,phpmailer,Php,Smtp,Phpmailer,因为很难找到答案,我想这可能是不可能的。如果是这样,我想确认这是不可能的。这不是不可能的 您可以自己编程SMTP交互,并在SMTP协议中检查凭据是否已被接受。对于这种方法,您必须与SMTP服务器进行套接字级通信(例如,使用[PHP套接字]服务) 要了解SMTP协议的工作原理,请尝试手动使用Telnet执行一次 PHP函数不支持SMTP身份验证 可以考虑第三方库,例如 或者你可以试试这个脚本,有一个非常简单的方法,可以使用最新版本的 您可能需要更改端口号并启用SSL,具体取决于目标SMTP服务

因为很难找到答案,我想这可能是不可能的。如果是这样,我想确认这是不可能的。

这不是不可能的

您可以自己编程SMTP交互,并在SMTP协议中检查凭据是否已被接受。对于这种方法,您必须与SMTP服务器进行套接字级通信(例如,使用[PHP套接字]服务)

要了解SMTP协议的工作原理,请尝试手动使用Telnet执行一次

PHP函数不支持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 ... */ }