我正在從引導模板創建聯系表單。但是,我想檢索用戶輸入的欄位的值,以便通過我的聯系地址的電子郵件接收它們。我想檢索 ID 欄位(姓名、prenom、電子郵件、聯系電話、input_from、input_to 和訊息)
我的 PHP Mailer 檔案作業正常,但我無法獲得預期的效果。第二個錯誤,我在我的 HTML 檔案中預定義了用于發送或失敗郵件的訊息,我該如何使用它?
你能幫我解決這個問題嗎?
PHP代碼:
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require ("../PHPMailer-master/src/PHPMailer.php");
require ("../PHPMailer-master/src/SMTP.php");
require ("../PHPMailer-master/src/Exception.php");
date_default_timezone_set("Europe/Paris");
$mail = new PHPMailer();
$body = "Test de PHPMailer.";
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPOptions = array('ssl' => array('verify_peer' => false,'verify_peer_name' => false,'allow_self_signed' => true)); // ignorer l'erreur de certificat.
$mail->Host = "mail.xxxx.com";
$mail->Port = 587;
$mail->Username = "[email protected]";
$mail->Password = "xxxx";
$mail->From = "[email protected]"; //adresse d’envoi correspondant au login entré précédemment
$mail->FromName = "Nouveau message sur le site "; // nom qui sera affiché
$mail->Subject = "Nouveau message"; // sujet
$mail->AltBody = "corps du message au format texte"; //Body au format texte
$mail->WordWrap = 50; // nombre de caractères pour le retour à la ligne automatique
$mail->MsgHTML($_POST['name']);
$mail->MsgHTML($_POST['prenom']);
$mail->MsgHTML($_POST['email']);
$mail->MsgHTML($_POST['message']);
$mail->AddReplyTo("votre mail","votre nom");
//$mail->AddAttachment("./examples/images/phpmailer.gif");// pièce jointe si besoin
$mail->AddAddress("xxxxxxxxxxxxxxxxx");
$mail->IsHTML(true); // envoyer au format html, passer a false si en mode texte
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Le message à bien été envoyé";
}
?>
HTML 代碼:
<form action="contact-2.php" method="post" role="form" class="php-email-form">
<div class="row">
<div class="form-group col-md-6">
<input type="text" name="name" class="form-control" id="name" placeholder="Nom" required>
</div>
<div class="form-group col-md-6">
<input type="text" class="form-control" name="prenom" id="prenom" placeholder="Prénom" required>
</div>
<div class="form-group col-md-6">
<input type="email" class="form-control" name="email" id="email" placeholder="Email" required>
</div>
<div class="form-group col-md-6">
<input type="tel" class="form-control" name="subject" id="contact-phone" placeholder="Téléphone" required>
</div>
<div class="form-group col-md-6">
<input type="text" class="form-control" id="input_from" placeholder="A partir du :" required>
</div>
<div class="form-group col-md-6">
<input type="text" class="form-control" id="input_to" placeholder="Au :" required>
</div>
</div>
<div class="form-group">
<textarea class="form-control" name="message" rows="6" placeholder="Message" required></textarea>
</div>
<div class="my-3">
<div class="loading">Envoi en cours</div>
<div class="error-message"></div>
<div class="sent-message">Votre message a été envoyé. Merci !</div>
</div>
<div class="text-center"><button type="submit">Envoyer</button></div>
</form>
</div>
uj5u.com熱心網友回復:
卓悅 Seazy。這不起作用:
$mail->MsgHTML($_POST['name']);
$mail->MsgHTML($_POST['prenom']);
$mail->MsgHTML($_POST['email']);
$mail->MsgHTML($_POST['message']);
您最終會收到一條僅包含該message欄位中的內容的訊息,并且msgHTML, 在這里不會有太大幫助。保持簡單,您需要執行以下操作(使用純文本訊息):
$mail->Body = <<<EOT
{$_POST['name']}
{$_POST['prenom']}
{$_POST['email'])}
{$_POST['message']}
EOT;
看起來您的代碼基于一個非常古老的示例,因此請查看PHPMailer 提供的聯系表單示例。
如果您想在模板中包含這些值,則需要查看使用 PHP 的輸出緩沖和include陳述句加載這些模板檔案,如下所示:
ob_start();
include 'template.php';
$html = ob_get_contents();
ob_end_clean();
$mail->msgHTML($html);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/439635.html
