PHPMailer“$ mail-> MsgHTML($ msg)”问题与“$味精” [英] PHPMailer "$mail->MsgHTML($msg)" issue with "$msg"
问题描述
我在这里问,因为我没有从OVH(我的托管)得到答案。
这是问题:
如果我用$ mail-> MsgHTML($ _ POST ['message'])替换$ mail-> MsgHTML($ msg),我立即收到包含标题,名称,电子邮件,主题和消息。
但是,当我把$味精,而不是我收到的邮件。
$ msg ='Name:'。$ _POST ['name']。'< br />
电子邮件:'。$ _ POST ['email']。'< br />
Subject:'。$ _ POST ['subject']。'< br />
IP:'。$ _ SERVER ['REMOTE_ADDR']。'< br />< br />
消息:< br />< br />
'.nl2br($ _ POST ['message'])。'
';
整个PHP(来自FancyAJAXForm):
<?php
/ * config start * /
$ emailAddress ='我的邮件地址';
/ * config end * /
需要class.phpmailer.php;
foreach($ _ POST为$ k => $ v)
{
if(ini_get('magic_quotes_gpc'))
$ _POST [$ k] =的stripslashes($ _ POST [$ K]);
$ _POST [$ k] = htmlspecialchars(strip_tags($ _ POST [$ k]));
}
$ msg ='Name:'。$ _ POST ['name']。'< br />
电子邮件:'。$ _ POST ['email']。'< br />
Subject:'。$ _ POST ['subject']。'< br />
IP:'。$ _ SERVER ['REMOTE_ADDR']。'< br />< br />
消息:< br />< br />
'.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->发送();
?>
好的,我解决了问题。
我用主体函数替换$ mail-> msgHTML($ msg):
$ MAIL-> IsHTML(真);
$ mail-> Body ='Name:'。$ _ POST ['name']。'< br />
电子邮件:'。$ _ POST ['email']。'< br />
Sujet:'。$ _ POST ['subject']。'
< br />< br />
'.nl2br($ _ POST ['message'])。'
< br />< br />
浏览器:'。$ _ SERVER ['HTTP_USER_AGENT']。'< br />
IP:'。$ _ SERVER ['REMOTE_ADDR']。'< br />
';
$ mail->发送();
它非常完美!
感谢所有参与者!
I'm asking here because I did not got an answer from OVH (my hosting). Here is the problem : If I replace $mail->MsgHTML($msg) with $mail->MsgHTML($_POST['message']), I receive the mail instantly with headers, name, email, subject and the message. But when I put $msg instead, I receive no mail.
$msg='Name:'.$_POST['name'].'<br />
Email:'.$_POST['email'].'<br />
Subject: '.$_POST['subject'].'<br />
IP:'.$_SERVER['REMOTE_ADDR'].'<br /><br />
Message:<br /><br />
'.nl2br($_POST['message']).'
';
entire PHP (from 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'].'<br />
Email:'.$_POST['email'].'<br />
Subject: '.$_POST['subject'].'<br />
IP:'.$_SERVER['REMOTE_ADDR'].'<br /><br />
Message:<br /><br />
'.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();
?>
Ok I got the problem solved.
I've replace $mail->msgHTML($msg) with the body function :
$mail->IsHTML(true);
$mail->Body='Name: '.$_POST['name'].'<br />
Email: '.$_POST['email'].'<br />
Sujet: '.$_POST['subject'].'
<br /><br />
'.nl2br($_POST['message']).'
<br /><br />
Browser: '.$_SERVER['HTTP_USER_AGENT'].'<br />
IP: '.$_SERVER['REMOTE_ADDR'].'<br />
';
$mail->Send();
It works perfectly! Thanks to all participants!
这篇关于PHPMailer“$ mail-> MsgHTML($ msg)”问题与“$味精”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!