【问题标题】:PHPmailer sending email successful, no email received [duplicate]PHPmailer发送电子邮件成功,没有收到电子邮件[重复]
【发布时间】:2018-06-01 17:43:26
【问题描述】:

我现在是第一次使用 PHPmailer,因为我以后需要使用附件,而 mail 中的构建不是那么好。

我正在使用示例代码,尽管我没有收到任何错误 + Message has been sent 没有消息到达目标电子邮件。

这是我使用的代码。可以忽略未注释的内容(我需要它们作为表单,提交时应发送电子邮件)

<?php
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

//Load composer's autoloader
require '../vendor/autoload.php';

// Fetching Values from URL.
//$phone = $_POST['phone1'];
//$email_var = $_POST['email1'];
$email_var = 'sender.email.info@gmx.net';
$email_var = filter_var($email_var, FILTER_SANITIZE_EMAIL); // Sanitizing E-mail.

// After sanitization Validation is performed
if (filter_var($email_var, FILTER_VALIDATE_EMAIL)) {

    $mail = new PHPMailer();                              // Passing `true` enables exceptions
    try {

        //$mail->SMTPDebug = 2;                                 // Enable verbose debug output
        //$mail->isSMTP();                                      // Set mailer to use SMTP
        //$mail->Host = 'SERVER';               // Specify main and backup SMTP servers
        //$mail->SMTPAuth = true;                               // Enable SMTP authentication
        //$mail->Username = 'USER';                          // SMTP username
        //$mail->Password = 'PW';                           // SMTP password
        //$mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
        //$mail->Port = 465;                                    // TCP port to connect to

        //Recipients
        $mail->setFrom('receiver.email@gmx.net');
        //$mail->addAddress('receiver.email@gmx.net');     // Add a recipient


        //Attachments
        //$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
        //$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name

        //Content
        $mail->isHTML(true);                                  
        $mail->Subject = 'Here is the subject';
        $mail->Body    = '<div style="padding:50px; color:white;">'
                        . '<br/> Kautionsrückzahlung Interesse von: <br/><br/>'
                        //. 'Telefon: ' . $phone . '<br/>'
                        . 'Email: ' . $email_var . '<br/>';

        $mail->AltBody = '<div style="padding:50px; color:white;">'
                        . '<br/> Kautionsrückzahlung Interesse von: <br/><br/>'
                        //. 'Telefon: ' . $phone . '<br/>'
                        . 'Email: ' . $email_var . '<br/>';

        $mail->send();
        echo 'Message has been sent';
    } catch (Exception $e) {
        echo 'Message could not be sent.';
        echo 'Mailer Error: ' . $mail->ErrorInfo;
    }
}

我现在尝试了不同的东西,似乎我是否使用服务器 PW 等都没有关系。我假设它只适用于 localhost。

编辑:

澄清一下,我不在本地主机上。我有我的服务器的数据,但显然我没有在问题中包含数据。我将它们更改为USERSERVERPW。 但不管它们是否存在或未注释我都得到Message has been sent在这两种情况下。

【问题讨论】:

  • 1.检查垃圾邮件文件夹。 2. 检查服务器日志。 3.检查端口是否开放。

标签: php email


【解决方案1】:

您真的需要在本地主机中完成此操作吗?相反,您可以在任何主机中部署代码并检查。你不必使用任何额外的东西。简单的邮件选项就足够了。原因是在您的本地服务器中没有配置邮件服务器。所以你使用其他一些类来实现这一点。

【讨论】:

  • 我将有一些基本代码来实现这一点,使用 localhost 将尽快共享代码。
  • 我不在本地主机上,见编辑
【解决方案2】:

你检查过服务器主机吗?

【讨论】:

    猜你喜欢
    • 2017-08-25
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 2014-07-04
    • 1970-01-01
    • 2017-01-16
    • 2017-05-03
    相关资源
    最近更新 更多