phpmailer在提交表单后不会发送电子邮件

时间:2017-04-24 09:53:36

标签: php html forms email phpmailer



我正在乱搞phpmailer,我已经把一切都搞定了。
但我现在要做的就是在提交表格后发送邮件。 只有一个承认表格的基本电子邮件已经提交(没有表格数据),这并不困难。

问题:提交表单后电子邮件未发送(电子邮件代码100%经过测试)

希望有人可以帮助我:)

mail.php代码:

<?php
//ini_set(‘display_errors’, 1);

include '/var/www/includes/mailer.php';

//require 'PHPMailerAutoload.php';

 $mail = new PHPMailer;

 $mail->SMTPDebug = 3;                                 // Enable verbose      debug output

$mail->isSMTP();                                      // Set mailer to  use SMTP
$mail->Host = 'smtp.nicetrygoyim.nl';                       //Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication


$mail->Username = 'secret@secret.com';          // SMTP username
$mail->Password = 'nicetry';                             // SMTP password
$mail->SMTPSecure = 'TLS';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to

$mail->setFrom('secret@secret.com', 'Mailer');
$mail->addAddress('secret@secret.com', 'secret');     // Add a recipient
$mail->addAddress('secret@secret.com', 'secret');               // Name is optional
//$mail->addReplyTo('secret@secret.com', 'Information');
//$mail->addCC('cc@example.com');
//$mail->addBCC('bcc@example.com');

//$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
 $mail->isHTML(true);                                  // Set email format to HTML

  $mail->Subject = 'Here is the subject';
  $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
  $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';


   $mail->smtpConnect([
   'ssl' => [
    'verify_peer' => false,
    'verify_peer_name' => false,
    'allow_self_signed' => true
     ]
      ]);

     if(!$mail->send()) {
     echo 'Message could not be sent.';
     echo 'Mailer Error: ' . $mail->ErrorInfo;
    } else {
    echo 'Message has been sent';
    }
    ?> 

我的表格:

<form action="mail.php" method="post">
 Leerlingnummer:<br>
 <input type="text" name="leerlingnummer"required placeholder="Voer hier het leerlingnummer in" /><br>
 E-mailadres:<br>

 <input type="submit" name="submit" class="groottext" value="Reparatie    indienen"/>

编辑:错字

编辑:忘了提问题

1 个答案:

答案 0 :(得分:1)

如果此代码正在运行,您应该看到大量的调试输出,即使它正常工作。你实际上并没有说出问题是什么,但是我做错了一些我能看到的事情。如果您根据提供的示例设置代码并阅读the docs而不仅仅是猜测,那将非常有用。

$mail->SMTPSecure = 'TLS';

应该是:

$mail->SMTPSecure = 'tls';

不要自己打电话给smtpConnect(),你会搞砸跟踪SMTP交易状态。如果您想设置SSL参数,请按预期方式设置它们,然后只需调用send(),它将处理连接:

$mail->SMTPOptions = array(
    'ssl' => array(
        'verify_peer' => false,
        'verify_peer_name' => false,
        'allow_self_signed' => true
    )
);

接下来的问题是你为什么这样做?如果您无法提供明确的,具体的理由,那么您做错了。