下面是我用于电子邮件功能的Webform PHP代码。单击表单中的“提交”按钮后,我成功地重定向到了thankyou.html页面,但我没有收到任何电子邮件到我的电子邮件帐户。非常感谢亲切的帮助。
PHP Code:
<?php
if(isset($_POST['submit'])) {
$emailbody = 'Name: '.$_POST['name']."\n"
.'E-mail: '.$_POST['email']."\n"
.'Phone: '.$_POST['phone']."\n"
.'Address: '.$_POST['addr']."\n"
.'City: '.$_POST['city']."\n"
.'State: '.$_POST['state']."\n"
.'Enquiry: '.$_POST['msg'];
mail('myemail@email.com', 'Subject Line', $emailbody);
header('location: thankyou.html');
} else {
header('location: index.html');
}
?>
答案 0 :(得分:0)
您可能缺少$ additional_headers参数中的“From”字段。尝试
$headers = 'From: myemail@email.com';
mail('myemail@email.com', 'Subject Line', $emailbody, $headers);
答案 1 :(得分:0)
这可能是您主人的问题。
我认为由于@ email.com从您的主机获得的电子邮件垃圾邮件,它现在可能已列入黑名单。
这意味着您必须就此问题与您的主持人联系,并告诉他们与@ email.com联系,将您的主机从黑名单中删除。
前一段时间我在000webhost.com遇到了这个问题他们告诉我我无法向yahoo.com帐户发送电子邮件,因为yahoo.com在黑名单中添加了000webhost.com,因为用户发送了垃圾邮件雅虎服务器。
答案 2 :(得分:0)
您的服务器或路由中的服务器可能拒绝发送邮件,因为它没有From:
地址。您可以使用headers
的{{1}}参数添加一个:
mail()
您应该检查任何用户提供的输入,以确保它不会尝试通过添加自己的标头来破坏您的邮件功能。检查<?php
if(isset($_POST['submit'])) {
$emailbody = 'Name: '.$_POST['name']."\n"
.'E-mail: '.$_POST['email']."\n"
.'Phone: '.$_POST['phone']."\n"
.'Address: '.$_POST['addr']."\n"
.'City: '.$_POST['city']."\n"
.'State: '.$_POST['state']."\n"
.'Enquiry: '.$_POST['msg'];
// Add extra headers here
$headers = "From:address@examle.com"
mail('myemail@email.com', 'Subject Line', $emailbody, $headers);
header('location: index.html');
} else {
header('location: about-us.html');
}
,To:
或Cc:
等文字。
大多数ISP都会拒绝发送电子邮件,除非它来自在其注册的域名。有时,Bcc:
地址必须存在于生成邮件的服务器上。
请注意,还有其他原因可能导致无法发送邮件:错误的寻址和垃圾邮件过滤器,但只有两个。
答案 3 :(得分:0)
我找到了答案。我刚刚将 $ emailbody 更改为 $ message ,现在工作正常。我不确定使用 $ emailbody 而不是 $ message 是问题,但现在工作正常。
谢谢大家。
答案 4 :(得分:0)
首先检查您的托管服务器是否为此提供邮件功能,您只需编写
echo phpinfo();
您需要检查邮件功能是否启用