使用PHP Mailer从HTML页面发送信息



我正在从引导模板创建一个联系人表单。但是,我想检索用户输入的字段的值,以便通过我的联系地址上的电子邮件接收它们。我想检索ID字段(姓名、婚前协议、电子邮件、联系电话、input_from、input_to和消息(

我的PHP Mailer文件工作正常,但我无法获得所需的效果。第二个错误,我在HTML文件中有用于发送或失败邮件的预定义消息,我该如何使用它?

你能帮我做这个吗?

PHP代码:

use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;

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   = "test@xxxx.com";
$mail->Password   = "xxxx";        
$mail->From       = "test@xxxx.com"; //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>

祝您好运。这不起作用:

$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);

最新更新