Localhost邮件和远程

时间:2017-11-19 08:20:56

标签: php phpmailer

首先,我不知道是否应该上传问题的任何代码。原因是我认为这是一般的。但欢迎提出任何建议。

现在,我有一个php脚本,使用phpmailer在注册时发送电子邮件确认。它在localhost上完美运行。但是,当我将其转移到远程时,它不会复制或发送电子邮件。

知道为什么会这样吗?我没有再次在梅勒工作过。谢谢。

2 个答案:

答案 0 :(得分:0)

您必须在本地配置SMTP,然后才能从本地计算机发送邮件

参考:How to send email from localhost WAMP Server to send email Gmail Hotmail or so forth?

感谢。

答案 1 :(得分:0)

您需要了解smtp服务器的工作原理。

您可以从dns获取收件人email-domain的mx主机,然后在没有自己的smtp服务器(本地防火墙上的防火墙上打开端口25)的情况下在端口25(始终)上发送电子邮件给该主机:How to, using PHP, ping an SMTP server and check MX records?或者PHPMailer的。

获取域dns mx记录/主机名(PHP)

function getMX($hostname = "boo.xx", $show = 0){
    if(dns_get_mx($hostname, $mxhosts, $weights)) {
        $i = 0;
        $mxList = NULL;
        foreach($mxhosts as $key => $host) {
            if($show == 1) echo "Hostname: $host (Weight: {$weights[$key]}) <br>";
            $ip = gethostbyname($host);
            if($show == 1) echo "IP " . $ip . "\n<br>";
            if($show == 1) echo "IP " . gethostbyaddr($ip) . "\n<br>";
            $mxList[$i]['host'] = $host;
            $mxList[$i]['ip'] = $ip;
            $mxList[$i]['weight'] = $weights[$key];
            $i++;
        }
        return $mxList;
    } else {
        echo "Could not find any MX records for $hostname\n";
    }
}