Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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
phpmailer在站点上工作,但不在本地主机上工作_Php_Email_Localhost_Phpmailer - Fatal编程技术网

phpmailer在站点上工作,但不在本地主机上工作

phpmailer在站点上工作,但不在本地主机上工作,php,email,localhost,phpmailer,Php,Email,Localhost,Phpmailer,我正在尝试使用phpmailer从本地主机发送邮件,但它不起作用。我从字面上复制并粘贴了代码的工作版本(在我的网站上工作),但当我尝试发送邮件时,它会给我以下错误: SMTP ERROR: Failed to connect to server: Operation timed out (60) SMTP connect() failed. Mailer Error: SMTP connect() failed. 我尝试过的事情: 用SMTP注释掉行(失败时不会给出错误消息) 将端口号更改为

我正在尝试使用phpmailer从本地主机发送邮件,但它不起作用。我从字面上复制并粘贴了代码的工作版本(在我的网站上工作),但当我尝试发送邮件时,它会给我以下错误:

SMTP ERROR: Failed to connect to server: Operation timed out (60) 
SMTP connect() failed.
Mailer Error: SMTP connect() failed.
我尝试过的事情:
  • 用SMTP注释掉行(失败时不会给出错误消息)
  • 将端口号更改为25或465
  • 确保在我的实际网站上,一切都以当前的形式运行

    require_once("vendor/phpmailer/phpmailer/PHPMailerAutoload.php");
    
    $mail = new PHPMailer();
    
    
    $mail->SMTPDebug = 2;
    
    $mail->IsSMTP();
    $mail->SMTPAuth   = true;
    $mail->SMTPSecure = 'tls';
    $mail->Host       = "example.com";
    $mail->Port       = 587;
    $mail->Username   = "username@example.com";
    $mail->Password   = "password";
    
    
    
    $mail->From = "username@example.com";
    $mail->FromName = "name";
    
    $mail->addAddress("user@gmail.com");
    
    
    $mail->Subject = "Subject";
    $mail->Body = "Body";
    
    if(!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } 
    else {
        echo "Message has been sent successfully";
    }
    

    提前感谢

    您是否真的有一个SMTP服务器监听端口587,您的本地计算机可以通过
    $mail->Host
    的值访问该端口?您是否实际更改了
    “example.com”
    中的值?您可以使用
    telnet
    测试SMTP服务器。既然您看起来是通过composer使用PHPMailer,为什么不使用composer的自动加载程序?阅读自述文件和故障排除指南可能会有所帮助,并确保您使用的是最新版本。@ironchicken对两者都是肯定的。Telnet说我已连接,我只在发布代码时更改了值here@Synchro我试过有作曲家和没有作曲家,两种方式都不起作用,所以按照指南中的说明进行诊断。你应该在发帖前搜索——这个问题有很多重复的地方。