Echo =消息已发送且没有错误;但是,不会发送任何消息。 PHP / HTML / Gmail的/ PHPMailer的

时间:2018-03-11 03:35:41

标签: php email gmail phpmailer

我在我的Mac上本地运行,当输入信息时我点击发送电子邮件没有显示在已发送邮件中的外发电子邮件帐户中,也没有显示在收到的邮件中;包括垃圾邮件文件没有错误回声。回显声明消息的发送没有错误。我在这里不知所措。顺便说一下,我是编码的新手,所以请温柔并深入解释。我感谢任何人都可以提供的任何帮助。这是我的代码。



<form method="post" enctype="multipart/form-data">

  <p>
    E-Mail:
  </p>
  <p>
    <input type="text" name="receiver" />
  </p>

  <p>
    Subject:
  </p>
  <p>
    <input type="text" name"subject" />
  </p>

  <p>
    Note:
  </p>
  <p>
    <textarea name="message"></textarea>
  </p>

  <p>
  Select Photo:
  <input type="file" name="file" />
</p>

<input type="submit" name="submit" value="Send Email" />

</form>


<?php

if (isset($_POST['submit'])) {

  require "php-mailer-master/PHPMailerAutoload.php";

  $mail = new PHPMailer;

try {
  
$sender = "????????????@gmail.com";

$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '$sender';
$mail->Password = '????????????';
$mail->SMTPSecure = 'tls';
$mail->Port = '587';

$mail->isHTML();

$mail->setFrom($sender, 'Mailer');
$mail->addAddress($_POST["receiver"]);
$mail->addAttachment ($file_name);
$mail->isHTML(true);

$mail->Subject = $_POST["subject"];
$mail->Body = $_POST["message"];

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

}

  ?>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

以下代码将为我发送消息。我换了???使用我的用户名和密码(还必须设置我的Gmail帐户以允许访问)。

我对您的代码所做的更改: 我在本地更改了作曲家的require。 您在$sender周围使用单引号 - 需要是双引号。 为输入添加了标题(可能不需要)。 还使用命名空间值来实例化$mail PHPMAILER(); 注释掉附件功能。

我还建议您检查清理用户输入。 类似的东西:

$name = trim(filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING));
$email = trim(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL));

代码:

<form method="post" enctype="multipart/form-data">

<p>
    E-Mail:
</p>
<p>
    <input type="text" name="receiver" title="receiver1"/>
</p>

<p>
    Subject:
</p>
<p>
    <input type="text" name="subject" title="subj1"/>
</p>

<p>
    Note:
</p>
<p>
    <textarea name="message" title="message"></textarea>
</p>

<p>
    Select Photo:
    <input type="file" name="file"/>
</p>

<input type="submit" name="submit" value="Send Email"/>

</form>

<?php
require '../vendor/autoload.php';

if (isset($_POST['submit'])) {

    $mail = new \PHPMailer\PHPMailer\PHPMailer();

    try {

        $sender = "?????????@gmail.com";
        $mail->isSMTP();
        $mail->Host = 'smtp.gmail.com';
        $mail->SMTPAuth = true;
        $mail->Username = "$sender";
        $mail->Password = '?????????????';
        $mail->SMTPSecure = 'tls';
        $mail->Port = '587';

        $mail->isHTML();

        $mail->setFrom($sender, 'Mailer');
        $mail->addAddress($_POST["receiver"]);
//        $mail->addAttachment ($file_name);
        $mail->isHTML(true);

        $mail->Subject = $_POST["subject"];
        $mail->Body = $_POST["message"];

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

}

?>