2013-04-04 101 views
1

我正在尝试使用php创建联系表。当我点击发送电子邮件似乎已发送,但收件人从未实际收到它。也许我需要建立一个SMTP服务器,但我不确定如何做到这一点。由于在form.html提前使用php联系表发送电子邮件

我在mail.php文件有

<form action="mail.php" method="POST"> 
<p>Name</p> <input type="text" name="name"> 
<p>Email</p> <input type="text" name="email"> 
<p>Phone</p> <input type="text" name="phone"> 

<p>Request Phone Call:</p> 
Yes:<input type="checkbox" value="Yes" name="call"><br /> 
No:<input type="checkbox" value="No" name="call"><br /> 

<p>Website</p> <input type="text" name="website"> 

<p>Priority</p> 
<select name="priority" size="1"> 
<option value="Low">Low</option> 
<option value="Normal">Normal</option> 
<option value="High">High</option> 
<option value="Emergency">Emergency</option> 
</select> 
<br /> 

<p>Type</p> 
<select name="type" size="1"> 
<option value="update">Website Update</option> 
<option value="change">Information Change</option> 
<option value="addition">Information Addition</option> 
<option value="new">New Products</option> 
</select> 
<br /> 

<p>Message</p><textarea name="message" rows="6" cols="25"></textarea><br /> 
<input type="submit" value="Send"><input type="reset" value="Clear"> 
</form> 

我有

<?php 
$name = $_POST['name']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$call = $_POST['call']; 
$website = $_POST['website']; 
$priority = $_POST['priority']; 
$type = $_POST['type']; 
$message = $_POST['message']; 
$formcontent=" From: $name \n Phone: $phone \n Call Back: $call \n Website: $website \n  Priority: $priority \n Type: $type \n Message: $message"; 
$recipient = "[email protected]"; 
$subject = "Contact Form"; 
$mailheader = "From: $email \r\n"; 
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!"); 
echo "Thank You!" . " -" . "<a href='form.html' style='text- decoration:none;color:#ff0099;'> Return Home</a>"; 
?> 
+0

你能发布1)你的PHP的邮件配置( http://www.php.net/manual/en/mail.configuration.php)2)您的邮件/ MTA服务器生成的日志条目? – AnFi 2013-04-05 05:50:41

回答

1

对于mail()功能工作,你可以简单地只是在安装后缀您服务器发出以下命令:

sudo apt-get install postfix 
0

您可以尝试pear pac卡格。

sudo apt-get install pear 
sudo pear install mail 

安装将推荐一些其他的包too.Install他们在同一way.To发送邮件用途:[php.ini中

public function sendMail($to) 
    { 
    require_once('Mail.php'); 
    $this->_to=$to; 
    $host = "ssl://smtp.gmail.com"; 
    $port = "465"; 
    $headers = array ('From' => $this->_from, 
        'To' => $this->_to, 
        'Subject' => $this->_subject); 
    $smtp = Mail::factory('smtp', 
          array ('host' => $host, 
           'port' => $port, 
           'auth' => true, 
           'username' => $this->_username, 
           'password' => $this->_password)); 
    $mail = $smtp->send($this->_to, $headers, $this->_body); 
}