PHP-使用邮件功能从表单发送电子邮件
我已经看了好几个小时了,我不明白为什么这样不行。我正在尝试使用邮件功能发送电子邮件。由于某些原因,当由iPage托管时,此页面可以工作,但Godaddy不能。这是什么原因 PHP:PHP-使用邮件功能从表单发送电子邮件,php,email,Php,Email,我已经看了好几个小时了,我不明白为什么这样不行。我正在尝试使用邮件功能发送电子邮件。由于某些原因,当由iPage托管时,此页面可以工作,但Godaddy不能。这是什么原因 PHP: <?php // Run code if button pressed if (isset($_POST['submit'])) { // Makes sure all fields are filled if (!$_POST['name'] | !$_POST['email'] | !$_POST['me
<?php
// Run code if button pressed
if (isset($_POST['submit'])) {
// Makes sure all fields are filled
if (!$_POST['name'] | !$_POST['email'] | !$_POST['message'] ) {
?><script>alert('You forgot to fill in a field');window.location = "http://example.com/contact.php";</script>
<?php
exit;
}
// From the form
$name = trim(strip_tags($_POST['name']));
$email = trim(strip_tags($_POST['email']));
$message = htmlentities($_POST['message']);
$to = 'email@gmail.com';
$subject = "Contact form submitted!";
$body = <<<HTML
$message
HTML;
$headers = "From: $email\r\n";
$headers .= "Content-type: text/html\r\n";
// send the email
mail($to, $subject, $body, $headers);
?><script>alert('Thanks! I will try to get back to you as soon as possible.');window.location = "http://example.com/contact.php";</script><?php
}
?>
alert('您忘记填写字段');window.location=”http://example.com/contact.php";
警惕('谢谢!我会尽快给你回复。');window.location=”http://example.com/contact.php";
如果您需要|
执行或
<?php
// Run code if button pressed
if (isset($_POST['submit'])) {
// Makes sure all fields are filled
if (empty($_POST['name']) || empty($_POST['email']) || empty($_POST['message']) ) {
?>
<script>alert('You forgot to fill in a field');
window.location = "http://example.com/contact.php";
</script>
<?php
exit;
}
最后一点,我建议您使用Swift-Mailer
或PHP-Mailer
来简化在GoDaddy服务器上发送电子邮件时遇到问题的人的操作,下面是发生的情况:
为了防止垃圾邮件,如果您使用某个域,GoDaddy的服务器会拒绝发送您的邮件(请参阅下面的列表)。因此,为了解决这里的具体问题,我必须将我使用的域更改为$email@gmail';代码>现在是$to=email@something-else.com",代码>
以下是GoDaddy和黑名单域名列表:
表格在网站上很流行;他们让客户与您共享他们的信息,无论是用于时事通讯还是注册帐户。通常情况下,这些表单会通过电子邮件向您或提交信息的访问者确认访问者的提交。您是否知道,所有电子邮件,即使是从托管帐户发送的,也必须在“发件人”值中输入信息
你也可以通过一个特定的电子邮件地址来实现这个价值。这可以让你为你的客户创建一封看起来很专业的电子邮件,或者让你自己轻松分类
然而,我们必须小心用户可以指定哪些内容作为他们的价值,以打击垃圾邮件企图。以下是我们不允许客户将其作为表单起始值的电子邮件地址域名列表:
- gmail.com
- 美国在线
- aim.com
- 雅虎网站
- hotmail.com
- live.com
- msn.com
如果您的电子邮件表单使用其中一个域名作为其发件人电子邮件地址,我们的服务器将不会发送电子邮件
首先,什么不起作用?首先,在php中启用错误报告,这样您就可以排除语法错误之类的问题。我没有收到电子邮件。但是只有一台主机…你要发送给哪种邮箱?例如,如果你正在向Gmail邮箱发送邮件,那么你发送邮件的服务器可能已经被列入黑名单(而且你可能打赌最终会在发件人邮箱中收到一条回复邮件)。我经常在共享主机上体验到这一点,甚至在一些更高质量的服务器上。这是许多人选择切换到邮件发送平台(mailgun、sendgrid、mailchimp等)的原因之一。不幸的是,垃圾邮件发送者会破坏我们其他人的主机。你有没有询问过你的GoDaddy帐户中的电子邮件服务是否可用?尝试先不使用表单发送电子邮件。你在邮件日志中发现了什么错误?根据经验,戈达迪会整天对你撒谎。他们也有奇怪的主机配置。他们很可能禁用了邮件命令。mail()命令使用系统的本地邮件程序sendmail。是Windows还是Linux主机?我认为这更像是一个不称职的主持人问题,而不是一个编程问题。
$headers = "From: youremail@yourdomain.com \r\n";
$headers .= 'Reply-To: '.$email. "\r\n" .
$headers .= "Content-type: text/html\r\n";