我是php
的新手,想要编写一个程序,从表单接收信息并使用php
邮件功能发送该信息。我正在使用XAMPP 5.5-19
进行设置。我研究了一些关于如何使这个程序工作但没有成功的主题。当我查看我的phpinfo();
时,它会读取以下内容:
SMTP = smtp.gmail.com
smtp_port = 587
sendmail_path = / usr / sbin / sendmail -t -i -F
sendmail_from =没有值
我的代码
</head>
<body>
<h3>Need More Information Contact Us!</h3>
<div>
<form method="post" action="">
<label for="name">Name</label>
<div>
<input type="text" name="name" />
</div>
<label for="tele">Number</label>
<div>
<input type="text" name="tele" />
</div>
<label for="subject">Subject</label>
<div>
<textarea rows="5" cols="40" name="subject"></textarea>
</div>
<input type="submit" value="Submit" name="sub" />
</form>
<?php
if(isset($_POST['sub']))
{
$name = $_POST['name'];
$number = $_POST['tele'];
$subject = $_POST['subject'];
$to = 'example@gmail.com';
mail($to, $subject, $name,$number);
}
?>
</div>
</body>
我知道这是一个反复出现的话题,但我对我研究过的文章没有运气。感谢所有提供意见和反馈的人。
答案 0 :(得分:1)
你在使用localhost吗?
如果是,那么SMTP不能在localhost上运行,否则你的代码就完美了。
答案 1 :(得分:1)
将你的PHP部分放在任何HTML之前。这样,如果您的用户提交有效,您可以重定向该页面。
参见php标题。还要查看Web上的用户数据验证方法。基本规则,永远不要相信用户提交数据。
话虽如此,在您的表单中添加一个隐藏字段,以便查看何时使用表单。
`<input type='hidden' name='sub' value='1'>`
您的邮件功能基本上有三个部分,第四部分是可选的。你可以用它来获得真正的幻想。
邮件(收件人,主题,留言);
所以在你的代码中;
$msg = $name."\r\n";
$msg .= $number."\r\n";
mail($to, $subject, $msg);
你可以验证;
$ mail_status = mail($ to,$ subject,$ msg);
如果($ mail_status)
{做某事}`
else {在错误时执行此操作}
在xampp上,如果没有错误,它将是空白的,或者它会执行{do something},从而解释你如何编写代码
答案 2 :(得分:1)
根据您的phpinfo打开您的sendmail文件夹(/ usr / sbin / sendmail)。 打开sendmail.ini文件中的调试器
; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging
debug_logfile=debug.log
执行新请求并查看debug.log文件的内容。例如,缺少对smtp.google.com的身份验证。
我还想指出,在全新安装时,你必须更新php.ini才能使用sendmail.exe,但我想这已经由你的phpinfo判断了。
修改强>
可以肯定的是,请检查您的php.ini文件并找到以下行:
sendmail_path =
如果它前面有;
注释,请删除;
。
根据我刚刚阅读有关使用MAMP的sendmail的文章,您也可以尝试在路径后输入您的电子邮件地址。
例如:sendmail_path = /usr/sbin/sendmail -t -i -f yourname@example.com
另一件事,因为你找不到sendmail.ini
您的sendmail文件夹中有哪些文件?我相信sendmail脚本在MAMP上没有文件扩展名。在WAMP中它是一个可执行程序(.exe
)