2012-04-29 6 views
0

OVH (내 호스팅)의 답변을 얻지 못했기 때문에 여기에서 묻습니다. 여기에 문제가 있습니다 : $ mail-> MsgHTML ($ msg)를 $ mail-> MsgHTML ($ _ POST [ 'message'])로 바꾸면 헤더, 이름, 이메일, 제목 및 메시지. 그러나 $ msg를 대신 입력하면 메일이 수신되지 않습니다. (FancyAJAXForm에서)

$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']).' 

'; 

전체 PHP :

<?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(); 

?> 
+0

당신은'var_dump ($ msg)'의 출력을 게시 할 수 있습니까 – ilanco

+0

'Send()'의 반환 값을 확인 했습니까? 스팸 폴더를 확인 했습니까? 통과 한 전자 메일의 헤더를 보았습니까 (전자 메일의 경로에 대한 정보가 있어야하며 일부 릴레이 서버는 통과하는 항목에 대해 다른 것보다 더 까다 롭습니다)? – DCoder

+0

@ilanco 다음 위해서 var_dump ($의 MSG) 반환 : "이름 : 이메일 : 제목 : IP : ** 내 IP 메시지 : "DCoder : 내가 말했듯이 나는 MsgHTML를 교체 할 때, 내가 메일을 수신 ($ msg) MsgHTML ($ _ POST [ 'message']); – unK

답변

4

좋아, 내가 해결 문제를 얻었다.

나는 신체 기능과 $ 메일 -> msgHTML ($의 MSG)를 대체 한 : 그것은 완벽하게 작동

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

! 모든 참여자에게 감사드립니다.

+3

해결책을 얻었으므로 틱 아이콘을 클릭하여 허용으로 표시하십시오. 이것은 미래에 비슷한 대답을 찾는 다른 누구에게 도움이 될 것입니다. – Spudley

2

나는이 정확히 적시 아니라는 것을 알고,하지만 난 다른 해결책을 발견 :

나는 비슷한 문제가 있었다, 그러나 나는 일을하지 않고 일부 일부 페이지가 있었다. 나는 당신의 해결책을 시도했지만, 그것은 나에게 같은 결과를 주었다.

그런 다음 작업 페이지에서 전자 메일의 html 소스를보고 html 태그와 body 태그를 열고 닫은 태그가 포함되어 있다는 것을 알았습니다. 작동하지 않는 페이지에 포함시키지 않았습니다. 그게 전부 였고, $ mail-> msgHTML ($ msg)이 나를 위해 일했습니다.

희망이 도움이됩니다.