【问题标题】:Opening e-mail with PHP IMAP使用 PHP IMAP 打开电子邮件
【发布时间】:2012-01-30 02:51:28
【问题描述】:

w3schools 论坛的一位用户帮助我编写了一些代码,使用 IMAP 功能检查我在私人服务器上的邮件收件箱并做我喜欢的事情,我创建了自己的一组函数来将电子邮件内容发布到MySQL 表。

有人可以帮我找到一个解决方案来解决我如何打开电子邮件收件箱,检查收件箱中的电子邮件(那里只有一个,因为以前的电子邮件将被自动删除。定义打开的电子邮件消息为 $open_email_msg 允许我启动我的一组命令来将电子邮件发送到 MySQL 表,然后删除电子邮件并关闭收件箱吗?

这是那个人帮助我的代码:

<?php

$now = time(); // current time

$mailbox = '{192.168.150.11:143/imap/novalidate-cert}'; // see http://www.php.net/manual/en/function.imap-open.php 
$mbox = imap_open($mailbox, 'username', 'password'); // log in to mail server

if (!$mbox)
  echo ('Failed opening mailbox<br>' . print_r(imap_errors(), true)); // remove the print_r for production use
else
{
  $box = imap_check($mbox); // get the inbox

  for ($imap_idx = 1; $imap_idx <= $box->Nmsgs; $imap_idx++) // loop through the messages
  {
    $headers = imap_headerinfo($mbox, $imap_idx); // http://www.php.net/manual/en/function.imap-headerinfo.php
    $raw_headers = imap_fetchheader($mbox, $imap_idx); // http://www.php.net/manual/en/function.imap-fetchheader.php
    $selected_headers = '';
    $text_part = '';
    $html_part = '';
    $original_message = imap_body($mbox, $imap_idx); // save the copy of the entire thing, attachments and all

    // build selected headers string
    for ($ii = 0; $ii < count($headers->from); $ii++)
      $selected_headers .= 'From: ' . $headers->from[$ii]->mailbox . '@' . $headers->from[$ii]->host . "\n";
    for ($ii = 0; $ii < count($headers->to); $ii++)
      $selected_headers .= 'To: ' . $headers->to[$ii]->mailbox . '@' . $headers->to[$ii]->host . "\n";
    for ($ii = 0; $ii < count($headers->cc); $ii++)
      $selected_headers .= 'Cc: ' . $headers->cc[$ii]->mailbox . '@' . $headers->cc[$ii]->host . "\n";
    for ($ii = 0; $ii < count($headers->bcc); $ii++)
      $selected_headers .= 'Bcc: ' . $headers->bcc[$ii]->mailbox . '@' . $headers->bcc[$ii]->host . "\n";
    if (!empty($headers->date))
      $selected_headers .= 'Date: ' . $headers->date . "\n";
    if (!empty($headers->subject))
      $selected_headers .= 'Subject: ' . $headers->subject . "\n";



    // see below; getMsg uses global variables
    getMsg($mbox, $imap_idx);

    $text_part = $plainmsg; // text portion of the email
    $html_part = $htmlmsg; // html portion of the email

    // check for text portion first
    $msg_text = trim(strip_tags($plainmsg

【问题讨论】:

    标签: php mysql email imap


    【解决方案1】:

    试试这个代码来阅读电子邮件。

    $username="yourusername@yourmailhost.com";
    $password="yourPassword123!";
    $hostname="{imap.hostinger.com:993/imap/ssl}INBOX";
    
    $imap=imap_open($hostname,$username,$password) or die('Cannot connect: '.imap_last_error());
    $message_count = imap_num_msg($imap);
    echo "<b>$message_count messages</b><br>";
    
    for ($i = 1; $i <= $message_count; ++$i){
      $header = imap_header($imap, $i);
      $body = imap_fetchbody($imap, $i, '2');
      $prettydate = date("jS F Y", $header->udate);
    
      if(isset($header->from[0]->personal)){
        $personal = $header->from[0]->personal;
      }else{
        $personal = $header->from[0]->mailbox;
      }
    
      $subject=$header->Subject;
      $email = "$personal <{$header->from[0]->mailbox}@{$header->from[0]->host}>";
      echo "On $prettydate, $email said \"$body\".\n";
      echo '<br><br>';
    }
    print_r(imap_errors());
    imap_close($imap);
    

    【讨论】:

      【解决方案2】:

      我相信this link 会帮助你,因为我自己使用了它,这对我来说是正确的。

      在那里你可以注册和下载代码,使用很简单。

      或者如果您只想获取标题信息,您可以做的是:

      $mbox = imap_open("{xyz@abc.com:995/pop3/ssl/novalidate-cert}INBOX", 'abc@xyz.com', 'pass')
                      or die("can't connect: " . imap_last_error());
      
      
      $MC = imap_check($mbox);
        $result = imap_fetch_overview($mbox,"1:{$MC->Nmsgs}",0);
      
        foreach ($result as $overview) {
          echo "#{$overview->msgno} ({$overview->date}) - From: {$overview->from}
          {$overview->subject}\n";
          echo "<br>";
      }
      

      【讨论】:

        猜你喜欢
        • 2010-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-13
        • 1970-01-01
        • 2011-05-21
        • 2012-06-08
        • 1970-01-01
        相关资源
        最近更新 更多