我使用jQuery validate form插件接收来自表单联系人的电子邮件。我的代码似乎运行但我没有收到邮件。我在WAMP看到“表格已发送”的消息。我已经配置了我的SMTP服务器,并且没有来自WAMP的错误消息。
我的表单:http://jsfiddle.net/Xroad/2pLS2/24/
怎么了?
<?php
if(isset($_POST) && isset($_POST['form_firstname']) && isset($_POST['form_name']) && isset($_POST['form_email']) && isset($_POST['form_telephone']) && isset($_POST['form_message'])) {
extract($_POST);
if(!empty($form_firstname) && !empty($form_name) && !empty($form_email) && !empty($form_telephone) && !empty($form_message)) {
$to = "XXXXXX@gmail.com"; // My real email
$subjet = "Contact from the site";
$msg = stripslashes($form_message);
$msg = "A question came \n
Firstname : $form_firstname \n
Name : $form_name \n
Email : $form_email \n
Message : $form_message";
mail($to, $subjet, $msg);
echo "Form sent";
} else {
echo "You have not filled in the field";
}
}
?>
<form id="form-general" action="php/traitement.php" method="post">
答案 0 :(得分:1)
我认为你的主机有问题,所以我们尝试使用gmail SMTP服务器发送电子邮件。
为了做到这一点,我将使用一个名为Swift的电子邮件库,在此处免费下载http://swiftmailer.org/,一旦下载它,只需将文件夹重命名为swift
并设置{{1} }} $smtp_settings
和username
(您用来登录您的Gmail帐户的那个)并确保所需的文件
password
走在正确的道路上。 (因为现在你可以将swift文件夹放在邮件文件的同一个根目录中)
require_once dirname(__FILE__).'/swift/lib/swift_required.php';
答案 1 :(得分:1)
好吧,如果没有其他代码的简单mail()函数没有将邮件发送到您的收件箱,那么您的SMTP似乎还有更多要配置。
制作邮件(&#34; XXXXXX@gmail.com",&#34;来自网站的联系人&#34;,&#34;测试&#34;)先工作你的其余代码可能还不错。
<强>更新强>
SMTP 默认值为 localhost 。据我说,您无法解析域 SMTP (当前在您的php.ini中的域)!您可以在控制台中使用 telnet SMTP 25 检查(您可能需要先启用telnet)。
无论如何确保你在另一边有一个MTA - 我最好的猜测是你需要打电话给你的系统管理员并问他关于你的SMTP主机和端口。
只是为了让您保持警惕 - 如果您需要针对您的MTA进行身份验证,您必须找到另一种解决方案,因为php mail()(根据我的知识) )不能这样做。搜索SwiftMailer和PhpMailer,两者都有很多例子。
更新2
嗯, sendmail.exe 附带自己的配置文件,您需要输入smtp服务器,端口和凭据!
更新3
sendmail.exe TLS支持自2008年以来一直没有更新.Windows版本在3年前进行了最后一次更新,根据您选择的下载版本,您最终可能会使用旧版本。虽然它总体上有效,但已有许多报告存在问题。
即使是作者sendmail.exe也建议 MSMTP 作为一个很好的开源替代品,甚至 blat 作为一个更强大的工具。我看到的唯一缺点是那些有更多选项并使用不同的配置格式,这可能看起来更难配置。