PHP Mail停止工作[重复]

Posted

技术标签:

【中文标题】PHP Mail停止工作[重复]【英文标题】:PHP Mail stops working [duplicate] 【发布时间】:2012-03-23 00:52:16 【问题描述】:

可能重复:php Mail stops working without me editing the code

一段时间以来,我的客户端邮件功能出现问题。问题是我用来接收邮件的邮件有时会停止接收邮件。我注意到这一点是因为当我从我的客户邮件 (info@allflytt.com) 更改为我自己的邮件 (daniel@codia.se) 时,它开始正常工作。 “成功功能”也给了我“邮件未发送”的消息。当我使用我的客户邮件 (info@allflytt.com) 时。所以问题似乎出在 mailadress 中,有时不接受邮件。这种情况每天都会发生几次,我所能做的就是等待它再次工作。我已经在下面发布了代码。

<?php

if(isset($_POST['submit']))

$mottagare = 'info@allflytt.com';
$titel = 'Meddelande';

$namn = strip_tags($_POST['namn']);
$foretag = strip_tags($_POST['foretag']);
$adress = strip_tags($_POST['adress']);
$postnr = strip_tags($_POST['postnr']);
$ort = strip_tags($_POST['ort']);
$telefon = strip_tags($_POST['telefon']);
$epost = strip_tags($_POST['epost']);
$meddelande = strip_tags($_POST['meddelande']);

$meddelande=nl2br($meddelande);

$body = 
"
Namn: <b>". $namn ."</b><br />
Företag: <b>". $foretag ."</b><br />
Adress: <b>". $adress ."</b><br />
Postnr: <b>". $postnr ."</b><br />
Ort: <b>". $ort ."</b><br />
Telefon: <b>". $telefon ."</b><br />
E-post: <b>". $epost ."</b><br /><br />
Meddelande: <b><br />". $meddelande
;

$headers =  'From: '. $namn .' <webmaster@allflytt.com>' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion();

$success = mail($mottagare, $titel, $body, $headers);



?>

            <?php
                if(!($success))
                    echo "<p class=\"field_error\">The mail was not sent.</p>";
                
            ?>

            <?php
                if($success)
                    echo "<p class=\"p_success\">Great! The mail was sent.</p>";
                
            ?>

    <form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">

    <p>
        <label for="namn">Namn: *</label><br />
        <input type="text" name="namn" id="namn" class="text" tabindex="15" />
            <br />
        <label for="foretag">Företag:</label><br />
        <input type="text" name="foretag" id="foretag" class="text" tabindex="20" />
            <br />
        <label for="adress">Adress:</label><br />
        <input type="text" name="adress" id="adress" class="text" tabindex="30" />
            <br />
        <label for="postnr">Postnummer:</label><br />
        <input type="text" name="postnr" id="postnr" class="text_medium" tabindex="40" />
            <br />
        <label for="ort">Ort:</label><br />
        <input type="text" name="ort" id="ort" class="text" tabindex="50" />
            <br />
        <label for="telefon">Telefon: *</label><br />               
        <input type="text" name="telefon" id="telefon" class="text" tabindex="60" />
            <br />
        <label for="epost">E-post:</label><br />                
        <input type="text" name="epost" id="epost" class="text" tabindex="70" />
            <br />
        <label for="meddelande">Meddelande: *</label><br />             
        <textarea name="meddelande" id="meddelande" class="textarea" tabindex="80"></textarea>
            <br />  
        <input type="submit" name="submit" value="Skicka" class="submit" />
    </p>

    </form>

【问题讨论】:

检查 $namn 的值(限制为字母、连字符和空格)。还要与您的主机核实,因为他们可能会过滤一些电子邮件。 您的代码似乎工作正常,但您的邮件服务器/接收邮件服务器却不行。你可能会得到更好的帮助,例如serverfault.com 感谢您的回答!我去看看其他论坛。我已经和我的网络主机进行了一些对话,他正在我们谈话时进行调查。到目前为止我所知道的是服务器上启用了 APC 缓存,并且它使用 SMTP 发送邮件。我得到了建议,也许那时我需要使用 PEARS 通过他的 SMTP 服务器发送邮件,但据他说我不需要。 【参考方案1】:

问题可能出在 $namn 变量上,它几乎可以获取任何值,因此可能根本不是有效的电子邮件,也可能是被收件人阻止的电子邮件。

首先,您应该确保 $namn 是一个有效的电子邮件,但我个人建议您为 From 使用单个常量地址,最好是一个域名解析为您的邮件服务器 IP 的地址。

【讨论】:

感谢您的快速回答!我做了一个测试,如果我改变了'。 $namn 。只是 Message ($headers = 'From: Message ' . "\r\n";) 但问题仍然存在。我发布的代码也是精简版。真实版本有一个功能,可以检查其中一个必填字段和 $namn,所以它不能为空。 “Namn”也被简单地翻译成英文的“name”,所以表格不应包含电子邮件地址。 我明白了。我检查了您的域的 MX 记录,它似乎没有指向与您的站点相同的域,而是一个相似的 IP——但这不足以确定它们是否已连接。基本上,如果您的 Web 服务器和邮件服务器不是同一个服务器,并且您尝试在本地发送电子邮件,它可能无法正常工作。但是,如果您的网络服务器已经通过该邮件服务器发送邮件,那么它就可以工作。【参考方案2】:

问题解决了。更改为新的服务器主机。没有问题了!

【讨论】:

以上是关于PHP Mail停止工作[重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP Mail 在我不编辑代码的情况下停止工作

通过梨安装邮件后Require_once停止工作[重复]

停止 PHP 表单中的重复条目

由于下面的内容,粘性导航栏停止工作[重复]

iOS10 +渐变停止工作[重复]

Xdebug 停止工作并且无法在断点处停止