PHP mail() 函数对办公室电子邮件不起作用


PHP mail() function not working to office email

所以我正在尝试使用PHP的mail()函数在用户注册时发送电子邮件。但由于某种原因,它拒绝发送到公司的电子邮件。我是否缺少一些额外的参数,我需要这样的东西,或者你认为它是来自公司的电子邮件过滤掉这些电子邮件?

编辑:下面是一些代码:

$to = 'something@something.com';
$subject = 'New Web Registration';
$from = 'Quote Registration';
$headers = 'Content-type: text/html charset=iso-8859-1'r'n';
$headers .= 'From: ' . $from;
$body = '<table>
        <tr>
            <td style="text-align: right;">WebUserID:</td>
            <td>' . $wuid . '</td>
        </tr>
        <tr>
            <td style="text-align: right;">Name: </td>
            <td>' . $regdata['Name'] . '</td>
        </tr>
        <tr>
            <td style="text-align: right;">Company:</td>
            <td>' . $regdata['Company'] . '</td>
        </tr>
        <tr>
            <td style="text-align: right;">Address:</td>
            <td>' . $regdata['Address'] . '</td>
        </tr>
        <tr>
            <td style="text-align: right;">CSZ:</td>
            <td>' . $regdata['City'] . ', ' . $regdata['State'] . ' ' . $regdata['Zip'] . '</td>
        </tr>
        <tr>
            <td style="text-align: right;">Phone:</td>
            <td>' . $regdata['Phone'] . '</td>
        </tr>
        <tr>
            <td style="text-align: right;">Fax:</td>
            <td>' . $regdata['Fax'] . '</td>
        </tr>
        <tr>
            <td style="text-align: right;">URL:</td>
            <td>' . $regdata['URL'] . '</td>
        </tr>
        <tr>
            <td style="text-align: right;">Email:</td>
            <td>' . $email . '</td>
        </tr>
        <tr>
            <td style="text-align: right;">Comments:</td>
            <td>' . $regdata['Comments'] . '</td>
        </tr>
        <tr>
            <td style="text-align: right;">Customer Group:</td>
            <td>' . $regdata['CustomerGroup'] . '</td>
        </tr>
        <tr>
            <td style="text-align: right;">How Heard</td>
            <td>' . $regdata['HowHeard'] . '</td>
        </tr>
        </table>';
if (!mail($to, $subject, $body, $headers)) {
    echo 'Message delivery failed.'; 
}

它确实成功地通过电子邮件发送到其他域,例如Gmail。交货/过滤器问题?

如果它成功发送到其他域,则说明您公司的邮件服务器有问题。电子邮件可能被过滤为垃圾邮件或类似内容。

一个简单的解决方案是使用STMP,或者您可以尝试通过查看邮件服务器的日志来找出过滤的原因。

如果您以 html 形式发送,请确保发送整个 html 消息。(标签和所有)。

我为您提供发送邮件的代码。它在我的应用程序中工作正常。希望对您有所帮助。

function sendmail($username)
{
    $from     =       "test@test.com";
    $to       =       "mytest@test.com";
    $subject  =       "My Test Subject";
    $body     =       "My Test Body";
    $headers .=      "From:".$from ."". "'r'n";
    if (mail($to ,$subject ,$body,$headers)) 
    {
        $msg = "Your message has been sent.";
    } 
    else
    {
        $msg = "Error in Sending the Message. Please try again.";
    }
    return $msg;
}