我已创建新页面与我们联系 我遇到这个错误遇到了麻烦。
警告:mail()[function.mail]:无法连接到mailserver "本地主机"端口25,验证您的" SMTP"和" smtp_port"在php.ini中设置或 在第41行的contact_me.php中使用ini_set()
我的PHP文件是
<?php
// check if fields passed are empty
if(empty($_POST['fname']) ||
empty($_POST['lname']) ||
empty($_POST['phone']) ||
empty($_POST['email']) ||
empty($_POST['dateTime']) ||
empty($_POST['heading']) ||
empty($_POST['companyName']) ||
empty($_POST['address']) ||
empty($_POST['postalCode']) ||
empty($_POST['city']) ||
empty($_POST['country']) ||
empty($_POST['message']) ||
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
{
echo "No arguments Provided!";
return false;
}
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$phone = $_POST['phone'];
$dateTime = $_POST['dateTime'];
$heading = $_POST['heading'];
$companyName = $_POST['companyName'];
$address = $_POST['address'];
$postalCode = $_POST['postalCode'];
$city = $_POST['city'];
$country = $_POST['country'];
$message = $_POST['message'];
$email_address = $_POST['email'];
// create email body and send it
$to = 'ram@gmail.com'; // PUT YOUR EMAIL ADDRESS HERE
$email_subject = "Modern Business Contact Form: $fname"; // EDIT THE EMAIL SUBJECT LINE HERE
$email_body = "You have received a new message from your website's contact form.\n\n"."Here are the details:\n\nFirst Name: $fname\n\nLast Name: $lname\n\nPhone: $phone\n\nContact Date Time:\n$dateTime\n\nHeading: $heading\n\nCompany Name: $companyName\n\nAddress: $address\n\nPostal Code: $postalCode\n\nCity: $city\n\nCountry: $country\n\nMessage: $message\n\nEmail ID: $email_address";
$headers = "From: rohitnewicvs@gmail.com\n";
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
return true;
?>
请告诉我什么是问题。
答案 0 :(得分:2)
您需要在计算机上设置邮件服务器才能使邮件功能正常工作。如果您使用的是Windows(我猜您是使用WAMP),则可以设置Pegasus邮件服务器。
其他选项包括使用包装类(如SwiftMailer或PHPMailer)并使用它们连接到另一个SMTP服务器,例如您的GMail帐户。
请参阅this Question它将解决您的问题。
答案 1 :(得分:0)
在进行某些配置之前,无法从本地PC发送电子邮件。我建议你将脚本上传到网络托管服务器(免费或付费)。我认为它会起作用。因为SMTP已在Web托管服务器中配置。
答案 2 :(得分:0)
我强烈建议您使用本网站提及的代码来帮助您从Gmail帐户发送:
http://phpmailer.worxware.com/?pg=examplebgmail
PHPMailer通常由PHP开发人员使用,具有许多功能并且还支持SSL / TLS
答案 3 :(得分:0)
可能是您正在使用wamp服务器或未定义SMTP设置的任何其他本地开发服务器,并且邮件功能需要SMTP才能工作。在PHP.ini中定义SMTP设置。您也可以使用GMAIL或任何其他邮件提供商SMTP设置。
如果您使用的是VPS,您可以使用GMAIL或任何其他邮件SMTP,也可以安装并运行您的OWN SMTP服务。 请点击此链接https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-14-04
考虑使用swift邮件程序,它在配置方面提供了更大的灵活性,您可以在脚本本身中设置SMTP设置
答案 4 :(得分:0)
PHP mail()
命令不支持身份验证。你的选择:
答案 5 :(得分:0)
我认为您在本地计算机上使用,必须在php.ini
中配置邮件功能
或者通过添加此代码来试用您的实时服务器,我希望这会对您有所帮助..
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: Mary <nb158f@gmail.com>' . "\r\n";
$headers .= 'From: mysite.com <admin@site.com>' . "\r\n";
//$headers .= 'Cc: cc@gmail.com' . "\r\n";
// Mail it
$flag = mail($to, $subject, $message, $headers);
答案 6 :(得分:0)
修改php.ini
文件以使用它(注释掉其他行):
[mail function]
; For Win32 only.
; SMTP = smtp.gmail.com
; smtp_port = 25
; For Win32 only.
; sendmail_from = <e-mail username>@gmail.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"