邮件PHP没有达到一半的人

时间:2014-10-05 17:43:44

标签: php email phpmailer

我有一个网站,人们可以注册并需要在ordre中验证使用他们的帐户。不幸的是,有些人没有收到确认邮件..

这是我正在使用的代码

function mail_send($arr) {
    if (!isset($arr['to_email'], $arr['from_email'], $arr['subject'], $arr['message'])) {
    throw new HelperException('mail(); not all parameters provided.');
}

$to            = empty($arr['to_name']) ? $arr['to_email'] : '"' . mb_encode_mimeheader($arr['to_name']) . '" <' . $arr['to_email'] . '>';
$from        = empty($arr['from_name']) ? $arr['from_email'] : '"' . mb_encode_mimeheader($arr['from_name']) . '" <' . $arr['from_email'] . '>';

$headers    = array
(
    'MIME-Version: 1.0',
    'Content-Type: text/html; charset="UTF-8";',
    'Content-Transfer-Encoding: 7bit',
    'Date: ' . date('r', $_SERVER['REQUEST_TIME']),
    'Message-ID: <' . $_SERVER['REQUEST_TIME'] . md5($_SERVER['REQUEST_TIME']) . '@' . $_SERVER['SERVER_NAME'] . '>',
    'From: ' . $from,
    'Reply-To: ' . $from,
    'Return-Path: ' . $from,
    'X-Mailer: PHP v' . phpversion(),
    'X-Originating-IP: ' . $_SERVER['SERVER_ADDR'],
);

    mail($to, '=?UTF-8?B?' . base64_encode($arr['subject']) . '?=', $arr['message'], implode("\n", $headers));
}

$arr = array();
$arr['to_email'] = $mail;
$arr['from_email'] = "no-reply@website.com";
$arr['subject'] = "Welcome [Validation]";
$arr['message'] = 'Thank you for registering, you're now able to fully use this website.'."<br><br>".'Username: <b>'.$username.'</b> Password :<b>'.$password.'</b>.'."<br><br>".' You need to validate in order to login...'."<br>".'<a href="a">Validate!</a>'."<br><br>".'Have fun!'."<br><br>".'--- The team.'; 

mail_send($arr);

另外,我在同一台服务器上运行了很好的论坛cms(phpbb和mybb),其中有0个与电子邮件相关的问题..

我的代码出了什么问题......

谢谢!

2 个答案:

答案 0 :(得分:2)

我建议像这样的https://github.com/PHPMailer/PHPMailer

来查看php的邮件程序类

为您省去了很多麻烦

答案 1 :(得分:0)

我可以看到你的代码没有任何问题,如果我认为即使这一半也不会收到任何邮件。我建议您联系您的托管服务提供商客户服务部门。