2012-04-21 146 views
0

我的网站在联系人选项卡中有一个联系表格,它应该发送邮件到我在submit.php文件中声明的电子邮件。不幸的是,我不收到和电子邮件或消息。有什么方法可以将联系表格消息链接到特定的电子邮件。该网站是eagleview.it联系表格不发送电子邮件

如果您需要任何进一步的代码让我知道。提前感谢你!

这是submit.php:

<?php 

/* config start */ 

$emailAddress = '[email protected]'; 

/* config end */ 


require "../php/class.phpmailer.php"; 

session_name("fancyform"); 
session_start(); 


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

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


$err = array(); 

if(!checkLen('name')) 
$err[]='The name field is too short or empty!'; 

if(!checkLen('email')) 
$err[]='The email field is too short or empty!'; 
else if(!checkEmail($_POST['email'])) 
$err[]='Your email is not valid!'; 

if(!checkLen('subject')) 
$err[]='You have not selected a subject!'; 

if(!checkLen('message')) 
$err[]='The message field is too short or empty!'; 

if((int)$_POST['captcha'] != $_SESSION['expect']) 
$err[]='The captcha code is wrong!'; 


if(count($err)) 
{ 
if($_POST['ajax']) 
{ 
    echo '-1'; 
} 

else if($_SERVER['HTTP_REFERER']) 
{ 
    $_SESSION['errStr'] = implode('<br />',$err); 
    $_SESSION['post']=$_POST; 

    header('Location: '.$_SERVER['HTTP_REFERER']); 
} 

exit; 
} 


$msg= 
'Name: '.$_POST['name'].'<br /> 
Email: '.$_POST['email'].'<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 = "A new ".mb_strtolower($_POST['subject'])." from ".$_POST['name']." | contact form feedback"; 

$mail->MsgHTML($msg); 

$mail->Send(); 


unset($_SESSION['post']); 

if($_POST['ajax']) 
{ 
echo '1'; 
    } 
else 
{ 
$_SESSION['sent']=1; 

if($_SERVER['HTTP_REFERER']) 
    header('Location: '.$_SERVER['HTTP_REFERER']); 

exit; 
} 

function checkLen($str,$len=2) 
{ 
return isset($_POST[$str]) && mb_strlen(strip_tags($_POST[$str]),"utf-8") > $len; 
} 

function checkEmail($str) 
{ 
return preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $str); 
} 

?> 
+0

我想这是因为你忘了''标签。 (请添加一些代码,我们不是通灵的) – xbonez 2012-04-21 02:48:53

+0

哦,上帝......帽子!我也没有看到任何地方的代码 – xbonez 2012-04-21 02:50:55

+0

我怎样才能显示它没有看起来凌乱 – user1165861 2012-04-21 02:52:51

回答

0

似乎有关于你如何放在一起的消息的东西了。尝试使用sprintf()这样的:

$msg = sprintf("Name : %s <br/> Email : %s <br/>IP : %s <br/><br/> Message : %s" 
       , $_POST['name'], $_POST['email'], $_SERVER['REMOTE_ADDR'], nl2br($_POST['message'])); 
+0

好吧...把这个地方放在这个权利? 'Name:\t'。$ _ POST ['name']。''
电子邮件:\t'。$ _ POST ['email']。'
IP:\t'。$ _ SERVER ['REMOTE_ADDR']。'

消息:

'.nl2br($ _ POST [ '消息'])。' '; – user1165861 2012-04-21 03:22:36

+0

是的...尝试一下。 – xbonez 2012-04-21 03:23:29

+0

还没什么 – user1165861 2012-04-21 03:27:04