【问题标题】:PHP mail wont send to exchange or google apps accountPHP 邮件不会发送到交易所或谷歌应用程序帐户
【发布时间】:2014-08-29 13:53:55
【问题描述】:

我正在尝试使用 php mail() 函数诊断电子邮件问题。该表单托管在 1 和 1 专用服务器上,带有 site1.com(托管脚本的站点和站点 2(我们的站点)。site1.com 使用交换服务器来管理它的电子邮件和我们的站点(site2.com ) 使用 Google Apps。

邮件表单不会发送到 site1.com 或 site2.com,但会发送到我的个人 gmail 帐户,与 site1.com 或 site2.com 没有任何关联。有人有什么想法吗?

这是邮件代码:

if(isset($_POST["submit_contact"]))
{
// Set submitted variable
$submitted = TRUE;

// Get data and add to variables

$m_name = mysql_real_escape_string($_POST["name"]);
$m_email = mysql_real_escape_string($_POST["email"]);
$m_company = mysql_real_escape_string($_POST["company"]);
$m_phone = mysql_real_escape_string($_POST["phone"]);
$m_enquiry = mysql_real_escape_string($_POST["enquiry"]);
$dateadded = gmdate("Y-m-d H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
$type = "Website Submission";


    /// Set error messages ///

    $emailError = "Sorry this e-mail is not valid, please try again.";

    ///////////SECURITY CHECKS///////////////////

    /// Check E-mail Authenticity ///
    if(!preg_match('#^[a-z0-9.!\#$%&\'*+-/=?^_`{|}~]+@([0-9.]+|([^\s]+\.+[a-z]{2,6}))$#si', $m_email)) {
        $message = $emailError;
        $error = TRUE;
    }

    // Set email message //
    $errorMessage = "Sorry, you cannot add URLS in this contact form";
    /// Check for urls ///
    if(preg_match("/http/i", "$m_name")) { $message = $errorMessage; $error = TRUE; }
    if(preg_match("/http/i", "$m_email")) { $message = $errorMessage; $error = TRUE; }
    if(preg_match("/http/i", "$m_company")) { $message = $errorMessage; $error = TRUE; }
    if(preg_match("/http/i", "$m_phone")) { $message = $errorMessage; $error = TRUE; }
    if(preg_match("/http/i", "$m_enquiry")) { $message = $errorMessage; $error = TRUE; }

    //// END SECURITY CHECKS ////

    if(!$error) {

        /// Send E-Mail ///
        $em_to = "enquiries@site1.com,me@site2.com,me@gmail.com";
        $em_subject = "Website Contact Form Submission";
        $em_message = "
        <strong>Name:</strong> $m_name<br />
        <strong>Email:</strong> $m_email<br />
        <strong>Phone:</strong> $m_phone<br />";

        if(isset($_POST["callSub"])) 
        {
            $em_message .= "<strong>Time to call:</strong> $m_enquiry<br />";
        } else {
            $em_message .= "<strong>Company:</strong> $m_company<br />
                            <strong>Message:</strong> $m_enquiry<br />";
        }

        $em_message .= "<br /><br />

        <strong>Date Submitted:</strong> $dateadded<br />
        <strong>IP Address:</strong> $ip<br />";

        $headers  = 'MIME-Version: 1.0' . "\r\n";
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
        $headers .= 'From: "site1" <'.$m_email.'>\r\n';

        if(mail($em_to, $em_subject, $em_message, $headers)) {
            $error = FALSE;
            $message = "<h3>Thank you for your enquiry, we'll be in touch soon!</h3>";
        } else {
            $error = TRUE;
            $message = "Sorry there was an error processing the form. Please go back and try again.";
        }

【问题讨论】:

  • 脚本有效。如果这些帐户没有收到这些电子邮件,那么中间的问题就是您的问题。您需要弄清楚那是什么并解决这些问题。
  • 我该怎么做?
  • 看看邮件日志有没有给你什么
  • 这个问题似乎是题外话,因为它是关于电子邮件的传递性,而不是关于编程。

标签: php email html-email contact-form


【解决方案1】:

它在内部发送邮件。我找到了how to turn this off on my server,它解决了这个问题。

【讨论】:

    猜你喜欢
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    相关资源
    最近更新 更多