【问题标题】:Localhost mailing and Remote本地主机邮件和远程
【发布时间】:2018-05-02 15:55:51
【问题描述】:

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

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

知道为什么会这样吗?我再也没有在Mailer上工作过。谢谢。

【问题讨论】:

  • 您是使用任何外部 SMTP(这是首选方式)还是使用 sendmail 或类似方式发送电子邮件?
  • 这很可能是因为您的托管服务提供商阻止了出站 SMTP。完成 PHPMailer 故障排除指南中的过程。另外,发帖前先搜索一下——这个问题之前已经被问过很多次了。

标签: php phpmailer


【解决方案1】:

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

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

谢谢。

【讨论】:

    【解决方案2】:

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

    您可以从 dns 获取收件人电子邮件域的 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";
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2010-11-22
      • 2018-08-03
      • 1970-01-01
      • 2019-12-31
      • 2012-06-05
      • 2011-08-13
      • 2012-11-03
      • 2014-09-12
      • 1970-01-01
      相关资源
      最近更新 更多