laswitchtech / php-imap
phpIMAP 是一个功能齐全的 PHP 邮箱管理类
Requires
- laswitchtech/php-configurator: ^1.0
- laswitchtech/php-logger: ^1.0
- laswitchtech/php-net: ^1.0
README
phpIMAP - [已弃用] - 请使用 coreIMAP 代替
描述
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();