【问题标题】:phpmailer email send not workingphpmailer电子邮件发送不起作用
【发布时间】:2018-07-26 07:11:16
【问题描述】:

大家好,我尝试通过 phpmail 发送电子邮件,我试试这段代码

<?php
require 'phpmailer/PHPMailerAutoload.php';

$mail = new PHPMailer();

//$mail->isSMTP();
$mail->Host = "smtp.gmail.com";
$mail->SMTPSecure = "ssl";
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = 'marksman283@gmail.com';
$mail->Password = 'mypassword';

$mail->setFrom('senaidbacinovic@gmail.com', 'Senaid Bacinovic');
$mail->addAddress('jpirakas007@gmail.com');
$mail->Subject = 'SMTP email test';
$mail->Body = 'this is some body';

if ($mail->send())
    echo "Mail sent";

 ?>

我从here 下载phpmail 并打开我的浏览器和http://localhost/mail/ 它的显示空白页

注意:os ubuntu 和邮件文件夹内的所有 php 和 phpmailer

我使用 apache2

这是我的错误日志

[Thu Jul 26 12:35:37.405468 2018] [php7:error] [pid 1922] [client 127.0.0.1:40440] PHP Fatal error:  require(): Failed opening required 'phpmailer/PHPMailerAutoload.php' (include_path='.:/usr/share/php') in /var/www/html/lear/index.php on line 2
[Thu Jul 26 12:36:31.746585 2018] [php7:warn] [pid 1924] [client 127.0.0.1:40528] PHP Warning:  require(phpmailer/PHPMailerAutoload.php): failed to open stream: No such file or directory in /var/www/html/lear/index.php on line 2
[Thu Jul 26 12:36:31.746643 2018] [php7:error] [pid 1924] [client 127.0.0.1:40528] PHP Fatal error:  require(): Failed opening required 'phpmailer/PHPMailerAutoload.php' (include_path='.:/usr/share/php') in /var/www/html/lear/index.php on line 2
[Thu Jul 26 12:43:53.780141 2018] [php7:error] [pid 1921] [client 127.0.0.1:40950] PHP Fatal error:  Uncaught Error: Class 'PHPMailer' not found in /var/www/html/lear/index.php:4\nStack trace:\n#0 {main}\n  thrown in /var/www/html/lear/index.php on line 4
[Thu Jul 26 12:43:57.170161 2018] [php7:error] [pid 1923] [client 127.0.0.1:40952] PHP Fatal error:  Uncaught Error: Class 'PHPMailer' not found in /var/www/html/lear/index.php:4\nStack trace:\n#0 {main}\n  thrown in /var/www/html/lear/index.php on line 4
[Thu Jul 26 12:44:44.728442 2018] [php7:error] [pid 3665] [client 127.0.0.1:40958] PHP Fatal error:  Uncaught Error: Class 'PHPMailer' not found in /var/www/html/lear/index.php:4\nStack trace:\n#0 {main}\n  thrown in /var/www/html/lear/index.php on line 4

【问题讨论】:

标签: php phpmailer


【解决方案1】:
$mail = new PHPMailer(); // create a new object
$mail->IsSMTP(); // enable SMTP
$mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
$mail->SMTPAuth = true; // authentication enabled
$mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail
$mail->Host = "smtp.gmail.com";
$mail->Port = 465; // or 587
$mail->IsHTML(true);
$mail->Username = "email@gmail.com";
$mail->Password = "password";
$mail->SetFrom("example@gmail.com");
$mail->Subject = "Test";
$mail->Body = "hello";
$mail->AddAddress("email@gmail.com");

 if(!$mail->Send()) {
    echo "Mailer Error: " . $mail->ErrorInfo;
 } else {
    echo "Message has been sent";
 }

【讨论】:

    【解决方案2】:

    首先检查 apache 错误日志,如果页面上没有任何错误报告,并使用下面的代码调试您的 smpt php emailer。

     echo $email->print_debugger();
    

    这将打印导致不发送电子邮件的确切错误。

    【讨论】:

    • 在哪里可以查看日志?我在哪里可以添加这一行?
    • 将此行放在 $mail->send() 之后..........如果您使用的是 ubuntu,请通过以下命令检查错误日志............ tail - f /var/log/apache2/error.log
    • 所以.......phpmailer文件路径不正确......您需要提供您的phpmailer lib的正确路径。
    • 有一个命令可以通过 composer 安装它........composer 需要 phpmailer/phpmailer 检查这个
    • 如果您完成并认为足够,请接受它作为正确答案......
    猜你喜欢
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多