用于阅读电子邮件的 PHP 库
Posted
技术标签:
【中文标题】用于阅读电子邮件的 PHP 库【英文标题】:PHP Library to read email 【发布时间】:2012-08-06 01:01:27 【问题描述】:我目前使用 SwiftMailer 库来发送电子邮件,但不幸的是它只能用于发送,不能用于接收。我想知道...是否有一个类似的库可以通过 IMAP 连接到电子邮件帐户并阅读电子邮件(IE 让我能够循环浏览电子邮件)。我知道这里有一组 php IMAP 函数:http://us3.php.net/manual/en/book.imap.php
但我的问题是,有人知道用于接收/查看所有电子邮件的替代库或 IMAP 包装类吗?
我真的找不到任何东西,提前谢谢。
【问题讨论】:
我正在编写一个实用程序,这对我没有帮助。如果我想了解可用的电子邮件客户端,我会在 SuperUser 上发布... 试试github.com/MonstaApps/PHP-IMAP-Fetcher。管道或获取电子邮件、登录 mysql 并保存附件。 【参考方案1】:见下文你的:--
http://www.php.net/mailparse
http://garrettstjohn.com/entry/reading-emails-with-php/
或者试试看:-
用 PHP 阅读电子邮件
<?php
class Email_reader
// imap server connection
public $conn;
// inbox storage and inbox message count
private $inbox;
private $msg_cnt;
// email login credentials
private $server = 'yourserver.com';
private $user = 'email@yourserver.com';
private $pass = 'yourpassword';
private $port = 143; // adjust according to server settings
// connect to the server and get the inbox emails
function __construct()
$this->connect();
$this->inbox();
// close the server connection
function close()
$this->inbox = array();
$this->msg_cnt = 0;
imap_close($this->conn);
// open the server connection
// the imap_open function parameters will need to be changed for the particular server
// these are laid out to connect to a Dreamhost IMAP server
function connect()
$this->conn = imap_open(''.$this->server.'/notls', $this->user, $this->pass);
// move the message to a new folder
function move($msg_index, $folder='INBOX.Processed')
// move on server
imap_mail_move($this->conn, $msg_index, $folder);
imap_expunge($this->conn);
// re-read the inbox
$this->inbox();
// get a specific message (1 = first email, 2 = second email, etc.)
function get($msg_index=NULL)
if (count($this->inbox) <= 0)
return array();
elseif ( ! is_null($msg_index) && isset($this->inbox[$msg_index]))
return $this->inbox[$msg_index];
return $this->inbox[0];
// read the inbox
function inbox()
$this->msg_cnt = imap_num_msg($this->conn);
$in = array();
for($i = 1; $i <= $this->msg_cnt; $i++)
$in[] = array(
'index' => $i,
'header' => imap_headerinfo($this->conn, $i),
'body' => imap_body($this->conn, $i),
'structure' => imap_fetchstructure($this->conn, $i)
);
$this->inbox = $in;
?>
【讨论】:
我收到了Notice: Unknown: SECURITY PROBLEM: insecure server advertised AUTH=PLAIN (errflg=1) in Unknown on line 0
??【参考方案2】:
可能最强大的方法是使用 Zend 的电子邮件类:
Current version
Zend 1.12 (no namespaces, good for legacy apps)
【讨论】:
以上是关于用于阅读电子邮件的 PHP 库的主要内容,如果未能解决你的问题,请参考以下文章