PHPMailer“$ mail-> MsgHTML($ msg)”问题与“$味精” [英] PHPMailer "$mail->MsgHTML($msg)" issue with "$msg"

查看:117
本文介绍了PHPMailer“$ mail-> MsgHTML($ 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-&gt; MsgHTML($ msg)”问题与“$味精”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆