laswitchtech/php-imap

phpIMAP 是一个功能齐全的 PHP 邮箱管理类

v2.1.3 2023-04-18 14:03 UTC

This package is auto-updated.

Last update: 2024-09-25 19:18:39 UTC


README

GitHub repo logo

phpIMAP - [已弃用] - 请使用 coreIMAP 代替

License GitHub repo size GitHub top language Version

描述

phpIMAP 是一个提供易于使用的接口与 IMAP 邮件服务器交互的 PHP 库。它包括两个主要类:消息类和附件类。

消息类允许您从 IMAP 服务器检索和操作电子邮件消息。它提供了检索消息头、正文和附件的方法,以及标记消息为已读或已删除的方法。此外,它还包括一个构造函数方法,该方法接收一个电子邮件消息作为其输入并将其解析为消息对象。

附件类用于处理电子邮件附件。它包括识别附件的文件名、类型和编码的方法,以及检索和保存附件内容的方法。此类通常与消息类的 getAttachments 方法一起使用,该方法是获取与给定电子邮件消息关联的所有附件。

功能

  • 从 IMAP 服务器检索电子邮件消息
  • 获取电子邮件消息的详细信息,如发件人、收件人、主题、日期等
  • 以纯文本或 HTML 格式获取电子邮件消息的正文
  • 从电子邮件消息中获取附件并将其保存到磁盘
  • 从服务器删除电子邮件消息
  • 将电子邮件消息移动到服务器上的不同邮箱
  • 根据各种标准(如发件人、收件人、主题和日期)在服务器上搜索电子邮件消息
  • 在服务器上标记电子邮件消息为已读或未读
  • 在服务器上标记电子邮件消息以便跟进
  • 以详细的错误消息和日志记录优雅地处理错误和异常
  • 使用 phpLogger 集成进行自定义日志记录。

为什么你需要它

该库提供了在 PHP 中简单而强大的方式与 IMAP 邮件服务器工作,允许开发人员轻松检索、操作和存储电子邮件消息和附件。

我可以使用这个吗?

当然可以!

许可

此软件根据 GNU 通用公共许可证 v3.0 许可证分发。请阅读 LICENSE 以获取有关软件可用性和分发的信息。

要求

PHP >= 5.5.0

安全性

请负责任地披露发现的任何漏洞 - 请私下向维护者报告安全问题。

安装

使用 Composer

composer require laswitchtech/php-imap

如何使用它?

示例

初始化

//Import IMAP class into the global namespace
//These must be at the top of your script, not inside a function
use LaswitchTech\IMAP\phpIMAP;

//Load Composer's autoloader
require 'vendor/autoload.php';

$phpIMAP = new phpIMAP();
$phpIMAP->connect("username@domain.com","*******************","imap.domain.com","993","ssl");

方法

为了便于说明,我们将假设您已经将类初始化为 $phpIMAP

phpIMAP

config()

此方法允许您更改一些内部配置,例如日志级别。

  • 0: 无日志记录
  • 1: 错误日志记录
  • 2: 警告日志记录
  • 3: 成功日志记录
  • 4: 信息日志记录
  • 5: 调试日志记录
$phpIMAP->config("level",5);
connect()

此方法创建到 IMAP 服务器的连接。

$phpIMAP->connect("username@domain.com","*******************","imap.domain.com","993","ssl");
close()

此方法关闭 IMAP 服务器的活动连接。

$phpIMAP->close();
login()

此方法允许测试到 IMAP 服务器的连接。

$phpIMAP->login("username@domain.com","*******************","imap.domain.com","993","ssl");
isConnected()

此方法返回一个布尔值,指示当前是否有一个活动连接。

$phpIMAP->isConnected();
getUsername()

此方法返回活动连接的用户名。

$phpIMAP->getUsername();
getHost()

此方法返回活动连接的主机。

$phpIMAP->getHost();
getFolders()

此方法返回可用文件夹列表。

$phpIMAP->getFolders();
setFolder()

此方法选择一个文件夹。

$phpIMAP->setFolder("INBOX");
createFolder()

此方法创建一个文件夹。

$phpIMAP->createFolder("New Folder");
deleteFolder()

此方法删除一个文件夹。

$phpIMAP->deleteFolder("Old Folder");
getMessages()

此方法返回所选文件夹中的消息列表。

foreach($phpIMAP->getMessages() as $message){}

消息

getTo()

此方法提供消息的所有“收件人”地址。

$message->getTo();
getReplyTo()

此方法提供消息的所有“回复”地址。

$message->getReplyTo();
getFrom()

此方法提供消息的所有“发件人”地址。

$message->getFrom();
getSender()

此方法提供消息的所有“发送者”地址。

$message->getSender();
getCc()

此方法提供消息的所有“抄送”地址。

$message->getCc();
getBcc()

此方法提供消息的所有“暗送”地址。

$message->getBcc();
getUid()

此方法返回消息的UID。

$message->getUid();
getId()

此方法返回消息的Message-Id。

$message->getId();
getSubject()

此方法返回消息的主题。

$message->getSubject();
getDate()

此方法返回消息的日期。

$message->getDate();
getBody()

此方法返回消息正文。如果可用,返回HTML,否则返回TEXT。

$message->getBody();
read()

在消息上设置已读标志。

$message->read();
unread()

清除消息上的已读标志。

$message->unread();
flag()

在消息上设置标记标志。

$message->flag();
unflag()

清除消息上的标记标志。

$message->unflag();
draft()

在消息上设置草稿标志。

$message->draft();
undraft()

清除消息上的草稿标志。

$message->undraft();
answer()

在消息上设置已回复标志。

$message->answer();
unanswer()

清除消息上的已回复标志。

$message->unanswer();
size()

获取消息的字节数。

$message->size();
isRead()

检查消息上是否设置了已读标志。

$message->isRead();
isFlagged()

检查消息上是否设置了标记标志。

$message->isFlagged();
isRecent()

检查消息上是否设置了最近标志。

$message->isRecent();
isAnswered()

检查消息上是否设置了已回复标志。

$message->isAnswered();
isDraft()

检查消息上是否设置了草稿标志。

$message->isDraft();
isDeleted()

检查消息上是否设置了已删除标志。

$message->isDeleted();
delete()

这将删除消息。

$message->delete();
copy()

将此消息复制到不同的文件夹。

$message->copy("New Folder");
move()

将此消息移动到不同的文件夹。

$message->move("New Folder");
save()

这将保存消息到本地。返回文件路径。

$message->save();
getAttachments()

此方法返回消息中的附件列表。

foreach($message->getAttachments() as $attachment){}

附件

getDisposition()

此方法返回附件的处置方式。

$attachment->getDisposition();
getEncoding()

此方法返回附件的编码。

$attachment->getEncoding();
getId()

此方法返回附件的内容ID。

$attachment->getId();
getFilename()

此方法返回附件的文件名。

$attachment->getFilename();
getFiletype()

此方法返回附件的文件类型。

$attachment->getFiletype();
getContentType()

此方法返回附件的内容类型。

$attachment->getContentType();
getContent()

此方法返回附件的内容作为数据blob。如果找到编码,它还将解码数据。

$attachment->getContent();
save()

这将保存附件到本地。返回文件路径。

$attachment->save();