【问题标题】:Fetch emails from email servers in php在 php 中从电子邮件服务器获取电子邮件
【发布时间】:2013-09-12 15:01:25
【问题描述】:

我编写代码来从不同的服务器(Gmail、yahoo、hotmail 等)获取电子邮件。我在 gmail 服务器上测试了我的代码,它可以工作,但对于 yahoo,该代码不起作用。我的代码是:

$data array will be like 

$data['type'] = 'pop3 or imap';
$data['protocol_type'] = 'ssl or tls or none';
$data['port'] = '993 or 995';
$data['login_name'] = 'user name';
$data['password'] = 'user password';
public function testconnectionAction()
    {

        $data = $_POST;


        if($data['type'] == 'pop3' && $data['protocol_type'] == 'none')
        {
               $hostname = '{'.$data['host'].':'.$data['port'].'/pop3}INBOX';
             $username = $data['login_name'];
              $password = $data['password'];
            $imap = imap_open($hostname,$username,$password)or die(imap_last_error());

            if (!imap_ping($imap)) {
                echo "Test Failed.";
                }else{
                      echo "Test Successfull.";
                }
        }elseif($data['type'] == 'imap' && $data['protocol_type'] == 'none') {
             $hostname = '{'.$data['host'].':'.$data['port'].'}INBOX';
             $username = $data['login_name'];
              $password = $data['password'];
            $imap = imap_open($hostname,$username,$password);
            if (!imap_ping($imap)) {
                echo "Test Failed.";
                }else{
                      echo "Test Successfull.";
                }
        }
      if($data['type'] == 'pop3' && $data['protocol_type'] == 'ssl')
      {
             $hostname = '{'.$data['host'].':'.$data['port'].'/pop3/ss}INBOX';
             $username = $data['login_name'];
             $password = $data['password'];
            $imap = imap_open($hostname,$username,$password);
      //  
            if (!imap_ping($imap)) {
                echo "Test Failed.";
                }else{
                      echo "Test Successfull.";
                }
      }
      if($data['type'] == 'imap' && $data['protocol_type'] == 'ssl')
      {
        $hostname = '{'.$data['host'].':'.$data['port'].'/imap/ssl/novalidate-cert}INBOX';
        $username = $data['login_name'];
        $password = $data['password'];

/* try to connect */
        $inbox = imap_open($hostname,$username,$password);

            if (!imap_ping($inbox)) {
                echo "Test Failed.";
                }else{
                      echo "Test Successfull.";
                }
      }

       if($data['type'] == 'pop3' && $data['protocol_type'] == 'tls')
      {
             $hostname = '{'.$data['host'].':'.$data['port'].'/pop3/tls}INBOX';
             $username = $data['login_name'];
             $password = $data['password'];
             $imap = imap_open($hostname,$username,$password)or die(imap_last_error());
            if (!imap_ping($imap)) {
                echo "Test Failed.";
                }else{
                      echo "Test Successfull.";
                }
      }
      if($data['type'] == 'imap' && $data['protocol_type'] == 'tls')
      {
        $hostname = '{'.$data['host'].':'.$data['port'].'/imap/tls}INBOX';
             $username = $data['login_name'];
             $password = $data['password'];
             $imap = imap_open($hostname,$username,$password);

            if (!imap_ping($imap)) {
                echo "Test Failed.";
                }else{
                      echo "Test Successfull.";
                }
      }

    }

我如何测试该代码是否在 yahoo 上工作。我尝试输入 pop.yahoo.com 的主机和端口 995,但它没有工作。

【问题讨论】:

    标签: php email


    【解决方案1】:

    经过搜索和测试,我找到了用于测试的 yahoo 电子邮件设置。

    Incoming Server: imap.mail.yahoo.com Port 993 with SSL
    Outgoing Server: smtp.bizmail.yahoo.com Port 465 with SSL (requires Authentication to be enabled)
    Username: Your Business Email address (e.g. name@mycompany.com)
    Password: Your Business Email password 
    

    对于 Hotmail,我使用以下代码:

    Outlook.com Incoming Mail Server (POP3) - pop3.live.com (logon using Secure Password Authentication – SPA,SSL enabled mail server port: 995).Hope it help someone like me.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-25
      • 1970-01-01
      • 2017-08-29
      • 2011-02-28
      • 2011-12-01
      • 2020-05-04
      相关资源
      最近更新 更多