我无法使用带有PHPMailer和Gmail SMTP的联系表发送邮件

时间:2019-05-30 02:18:11

标签: php html email

我正在尝试使用PHPMailer和Gmail SMTP从联系人发送电子邮件,实际上我不知道问题出在哪里? 我下载了PHPMailer from githup. 我尝试将其设置为this gay did.

contact.html

  <form action="contact.php" method="POST" class="p-5 ">
            <div class="row form-group">
              <div class=" mb-3 ">
                <label class="text-black" for="first-name">الاسم الاول</label>
                <input type="text" name="first-name" class="form-control" />
              </div>
              <div class="col">
                <label class="text-black" for="last-name">الاسم الاخير</label>
                <input type="text" name="last-name" class="form-control" />
              </div>
            </div>

            <div class="row form-group">
              <div class="col">
                <label class="text-black" for="email">إيميل</label>
                <input type="email" name="email" class="form-control" />
              </div>
            </div>

            <div class="row form-group">
              <div class="col">
                <label class="text-black" for="subject">الموضوع</label>
                <input type="subject" name="subject" class="form-control" />
              </div>
            </div>

            <div class="row form-group">
              <div class="col">
                <label class="text-black" for="message"
                  >محتوى الرسالة</label
                >
                <textarea
                  name="message"
                  cols="30"
                  rows="7"
                  class="form-control"
                  placeholder="اكتب هنا ..."
                ></textarea>
              </div>
            </div>

            <div class="row form-group">
              <div class="col2">
                <input
                  type="submit"
                  name="submit"
                  value="إرسال"
                  class="px-4 text-white"
                />
              </div>
            </div>
          </form>

contact.php

 <?php

       $result="";

if (isset($_POST['submit'])){
require 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;

$mail->isSMTP(); 
$mail->Host='smtp.gmail.com';
$mail->Port=587;
$mail->SMTPAuth=true;

$mail->SMTPSecure='tls'; 
$mail->Username='secret';
$mail->Password='secret';

$mail->setForm($_POST['email'],$_POST['first-name']);
$mail->addAddress('secret');
$mail->addReplyTo($_POST['email'],$_POST['last-name']);


$mail->isHTML(true);
$mail->subject='Contact Us: '.$_POST['subject'];
$mail->Body='<h1 align=center>الأسم :'.$_POST['first-name'].$_POST['last-name'].' الايميل: '.$_POST['email'].' العنوان: '.$_POST['subject'].' العنوان: '.$_POST['message'].'</h1>';

if(!$mail->send()){
    $result="حدث خطاء حاول مرة اخرى ، وشكراً";
}
else{
    $result="شكراً".$_POST['fname']."لتواصلك معنا ،سيتم الرد عليكم 
        قريباً";
  } 
 }
 ?>

错误消息页面不存在

谢谢

2 个答案:

答案 0 :(得分:0)

如果您为自己的gmail帐户启用了两步验证,则gmail将不允许您通过您的应用发送电子邮件。您必须生成应用密码并使用它发送邮件。在此处查看如何生成可从第三方应用程序使用的应用程序密码。 https://support.google.com/accounts/answer/185833?hl=en

答案 1 :(得分:0)

我发现了问题,但我不明白为什么, 在php文件的第18行中,
$ mail-> setForm($ _ POST ['email'],$ _ POST ['first'name']); 如果我删除它,我可以将电子邮件发送到我的Gmail帐户。 谁能告诉我那是什么? 如果邮件使用阿拉伯文语言,将不会阅读?