PHP & PHPMailer - PullRequest
       23

PHP & PHPMailer

0 голосов
/ 04 мая 2018

Я разработал сайт для личного пользования, который может отправлять почту. но проблема в том, что когда я запустил его на локальном, он работает отлично, но когда я запустил его на домене, он не отправляет почту и ответ «Ваше сообщение не отправлено». Вот мой код

<?php

 if(isset($_POST['sendmail']))

          {
            require 'PHPMailer/PHPMailerAutoload.php';

    $mail = new PHPMailer;

    $mail->isSMTP();                                   // Set mailer to use SMTP
    $mail->Host = 'smtp.gmail.com';                    // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                            // Enable SMTP authentication
    $mail->Username = 'example.sender@gmail.com';          // SMTP username
    $mail->Password = '12345abcde'; // SMTP password
    $mail->SMTPSecure = 'tls';                         // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 587;                                 // TCP port to connect to

   $mail->setFrom('example.sender@gmail.com');
    $mail->addAddress('example.reciver@gmail.com');   // Add a recipient

    $mail->isHTML(true);  // Set email format to HTML

    $mail->Subject   = "Mail From Web";
 $mail->Body      = "
    <table>
    <tr>
    <th><p>Name: $f_name $l_name</th>
    </tr>
    <tr><td><label>Email Address </label></td>
    <td>: $email </td></tr>
    <tr><td><label>Phone Number </label></td>
    <td>: $phone </td></tr>
    <tr><td><label>Country </label></td>
    <td>: $country </td></tr>
    <tr><td><label>State      </label></td>
    <td>: $state </td>
    </tr>
    <tr><td><label>Message</label></td>
    <td>: $msg </td></tr>
</table>";

    $mail->AltBody = "This is the plain text version of the email content";

    if(!$mail->send())
    {
        echo    $_SESSION['mesg']="<span style='color:red;'>Your Message is not submitted.</span>";
        $_SESSION['actionMessage'] = $_SESSION['mesg'];
    }
 else 
{
echo
    $_SESSION['mesg']="<span style='color:green;'>Your Message is submitted.</span>";   
        $_SESSION['actionMessage'] = $_SESSION['mesg'];
}
  }
?>

Может кто-нибудь, пожалуйста, дайте мне знать, почему это происходит ..?

1 Ответ

0 голосов
/ 04 мая 2018

, чтобы получить больше информации, попробуйте включить исключения и отладку. Вы можете увидеть, что происходит в $ mail-> ErrorInfo;

<?php

if (isset($_POST['sendmail'])) {
    require 'PHPMailer/PHPMailerAutoload.php';

    $mail = new PHPMailer(true);
    try {
        $mail->SMTPDebug = 2;
        $mail->isSMTP(); // Set mailer to use SMTP
        $mail->Host       = 'smtp.gmail.com'; // Specify main and backup SMTP servers
        $mail->SMTPAuth   = true; // Enable SMTP authentication
        $mail->Username   = 'example.sender@gmail.com'; // SMTP username
        $mail->Password   = '12345abcde'; // SMTP password
        $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
        $mail->Port       = 587; // TCP port to connect to

        $mail->setFrom('example.sender@gmail.com');
        $mail->addAddress('example.reciver@gmail.com'); // Add a recipient

        $mail->isHTML(true); // Set email format to HTML

        $mail->Subject = "Mail From Web";
        $mail->Body    = "
    <table>
    <tr>
    <th><p>Name: $f_name $l_name</th>
    </tr>
    <tr><td><label>Email Address </label></td>
    <td>: $email </td></tr>
    <tr><td><label>Phone Number </label></td>
    <td>: $phone </td></tr>
    <tr><td><label>Country </label></td>
    <td>: $country </td></tr>
    <tr><td><label>State      </label></td>
    <td>: $state </td>
    </tr>
    <tr><td><label>Message</label></td>
    <td>: $msg </td></tr>
</table>";

        $mail->AltBody = "This is the plain text version of the email content";

        if (!$mail->send()) {
            echo "Mailer Error: " . $mail->ErrorInfo;

            echo $_SESSION['mesg'] = "<span style='color:red;'>Your Message is not submitted.</span>";
            $_SESSION['actionMessage'] = $_SESSION['mesg'];
        } else {
            echo $_SESSION['mesg'] = "<span style='color:green;'>Your Message is submitted.</span>";
            $_SESSION['actionMessage'] = $_SESSION['mesg'];
        }
    }
    catch (Exception $e) {
        echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
    }
}
?> 
...