【问题标题】:Emails from website goes to my gmail account, but not client's account来自网站的电子邮件会发送到我的 gmail 帐户,但不会发送到客户的帐户
【发布时间】:2015-03-14 00:13:58
【问题描述】:

我创建了一个网站并将其上传到免费托管网站以测试 php。当我从网站发送测试电子邮件并将接收地址设置为我的 gmail 电子邮件帐户时,我会收到它们。虽然,它们被标记为垃圾邮件/网络钓鱼(在电子邮件中我有一个红色的警告标签)。但是,当我将接收地址设置为我客户的 gmail 帐户时,他根本没有收到它们,它们不在他的垃圾邮件框中(他让我查看他的 gmail 帐户以确认)。

我在想也许他的垃圾邮件拦截器级别是我的电子邮件所没有的?还是因为我使用免费托管网站发送电子邮件而发生这种情况?我打算把它上传到 GoDaddy。你认为通过将它上传到付费托管网站会改变我的情况还是我需要 PHPMailer?我的问题是为什么我收到了邮件,但是当我将接收邮件切换到我的客户的时,他根本没有收到邮件?

这是我的 php 代码:

<?php
if(isset($_POST['email-ad'])) {
$email_to = "xxxxxxx1@gmail.com"; //my email
$email_subject = "General Inquiry from xxxxcompany";
function died($error) {
    // your error code can go here
    echo "We are very sorry, but there were error(s) found with the form you submitted. ";
    echo "These errors appear below.<br /><br />";
    echo $error."<br /><br />";
    echo "Please go back and fix these errors.<br /><br />";
    die();
}
// validation expected data exists
if(!isset($_POST['name']) ||
    !isset($_POST['email-ad']) ||
    !isset($_POST['phone']) ||
    !isset($_POST['intention']) ||
    !isset($_POST['comments'])) {
    died('We are sorry, but there appears to be a problem with the form you submitted.');        
}
$name = $_POST['name']; // required
$email_from = $_POST['email-ad']; // required
$telephone = $_POST['phone']; // required
$intention = $_POST['intention']; // not required
$comments = $_POST['comments']; // not required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$name)) {
$error_message .= 'The name that you entered does not appear to be valid.<br />';
}
if(strlen($comments) < 2) {
$error_message .= 'The Comments you entered do not appear to be valid.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
  $bad = array("content-type","bcc:","to:","cc:","href");
  return str_replace($bad,"",$string);
}
$email_message .= "Name: ".clean_string($name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Phone: ".clean_string($telephone)."\n";
$email_message .= "Intention: ".clean_string($intention)."\n"; 
$email_message .= "Comments: ".clean_string($comments)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" . 
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);   
sleep(2);
echo "<meta http-equiv='refresh' content=\"5; url=index.html\">";
?>
<html>
<head>
 <link rel="stylesheet" href="css/style.css"> 
</head>
<body bgcolor="black">
 <font color="white">
  <font family="Helvetica">
    <div class="redirect">Thank you for contacting us. We will be in touch with you very soon.        You will redirected back to the homepage in a few. </div>
</font>
</font>
</body>
</html> 
<?php
}
?>

【问题讨论】:

  • 不可能说。该代码是无用的,因为显然 PHP 能够将电子邮件发送到您的其他帐户。您必须检查您的邮件服务器日志以查看 php 移交电子邮件后发生的情况。请记住:mail() 相当于将一个信封走到街角并将其放入邮箱。之后会发生什么不是 php 的问题。
  • 在您的电子邮件中有效,但在您的客户中电子邮件不起作用,您确定您写的电子邮件地址是正确的吗?这可能是问题所在,有时我写得很快,但我写错了。
  • @MarcB:对。我只是不想在帖子中留下任何可能有用的东西。谢谢你让我知道,虽然和教育。太糟糕了,我认为我什至在这个免费的 Web 托管站点上都没有该功能。不过,当我调试使用邮件服务器日志来查看发生了什么时,我会牢记这一点。
  • @TiGreX:是的,一开始我以为这是我的问题,但我通过将电子邮件地址复制并粘贴到我需要放置的位置来确定。

标签: php email gmail


【解决方案1】:

这种情况很可能是由于使用免费托管服务而发生的。请记住,由于共享网络托管的性质,垃圾邮件发送者更有可能:许多用户使用相同的 IP 地址发送邮件。此外,由于它是免费托管服务,因此每个人都可以发送电子邮件,因此也可以发送垃圾邮件。

顺便说一句,就像你说的,一些电子邮件提供商使用非常激进的垃圾邮件拦截,所以这可能是你的客户根本没有收到你的电子邮件的原因。

【讨论】:

  • 好的,我明白了。这不是代码,而是我正在使用的空间可能导致问题。我将上传到付费托管网站,看看会发生什么。谢谢!
  • 您可以查看某个IP地址或域名是否在Spamhaus黑名单here中。
  • 哇,真是大开眼界。我在该服务上有 4 个测试站点,只是想看看哪个 php 鸡尾酒会起作用。通过 Spamhaus,虽然其中两个与该帐户关联的 ips 不在任何列表中,但另外两个在。一个 IP 地址正在喷出垃圾邮件木马!疯狂...是的,这是一个非常酷的工具。谢谢分享!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-15
  • 2011-12-15
  • 2013-03-24
  • 2012-03-30
  • 1970-01-01
相关资源
最近更新 更多