首页 文章

PHPMailer“$ mail-> MsgHTML($ msg)”问题“$ msg”

提问于
浏览
0

我在这里问,因为我没有从OVH(我的托管)得到答案 . 问题是:如果我用$ mail-> MsgHTML($ _ POST ['message'])替换$ mail-> MsgHTML($ msg),我会立即收到包含 Headers ,姓名,电子邮件,主题和消息的邮件 . 但是当我把$ msg代替时,我没有收到任何邮件 .

$msg='Name:'.$_POST['name'].'
Email:'.$_POST['email'].'
Subject: '.$_POST['subject'].'
IP:'.$_SERVER['REMOTE_ADDR'].'

Message:

'.nl2br($_POST['message']).' ';

整个PHP(来自FancyAJAXForm):

<?php
/* config start */

$emailAddress = 'my mail address';

/* config end */

require "class.phpmailer.php";

foreach($_POST as $k=>$v)
{
if(ini_get('magic_quotes_gpc'))
$_POST[$k]=stripslashes($_POST[$k]);

$_POST[$k]=htmlspecialchars(strip_tags($_POST[$k]));
}


$msg='Name:'.$_POST['name'].'
Email:'.$_POST['email'].'
Subject: '.$_POST['subject'].'
IP:'.$_SERVER['REMOTE_ADDR'].'

Message:

'.nl2br($_POST['message']).' '; $mail = new PHPMailer(); $mail->IsMail(); $mail->AddReplyTo($_POST['email'], $_POST['name']); $mail->AddAddress($emailAddress); $mail->SetFrom($_POST['email'], $_POST['name']); $mail->Subject = "Contact Form: ".mb_strtolower($_POST['subject'])." from ".$_POST['name'].""; $mail->MsgHTML($msg); $mail->Send(); ?>

2 回答

  • 4

    好的我解决了问题 .

    我用body函数替换$ mail-> msgHTML($ msg):

    $mail->IsHTML(true);
    $mail->Body='Name:  '.$_POST['name'].'
    Email: '.$_POST['email'].'
    Sujet: '.$_POST['subject'].'

    '.nl2br($_POST['message']).'

    Browser: '.$_SERVER['HTTP_USER_AGENT'].'
    IP: '.$_SERVER['REMOTE_ADDR'].'
    '; $mail->Send();

    它完美无缺!感谢所有参与者!

  • 2

    我知道这不是很及时,但我找到了另一种解决方案:

    我遇到了类似的问题,但我有一些页面有效,有些则没有 . 我尝试了你的解决方案,但它给了我相同的结果 .

    然后我查看了来自工作页面的电子邮件的html源代码,并注意到我已经包含了打开和关闭的html和body标签,并且我没有将它们包含在非工作页面中 . 这就是全部,$ mail-> msgHTML($ msg)为我工作 .

    希望这可以帮助 .

相关问题