php imap 附件,学习猿地-PHP-imap 使用参考
1. 相關(guān)資料
php-imap 用于獲取郵件 ,但是沒(méi)有詳細(xì)的官方文檔 ,在這里整理一份分享給大家composer require php-imap/php-imap
2. php-imap 成員
2.1 構(gòu)造方法參數(shù)
說(shuō)明
示例$imapPath
服務(wù)地址
{imap.163.com:143}
$login
登錄名
email@163.com
$password
登錄密碼
***
$attachmentsDir
附件存儲(chǔ)目錄 ,如果設(shè)置了這個(gè)參數(shù) ,郵件中的附件會(huì)自動(dòng)存儲(chǔ)到這個(gè)目錄
-
$serverEncoding
服務(wù)器使用的字符編碼
-/**
* @param string $imapPath
* @param string $login
* @param string $password
* @param string $attachmentsDir
* @param string $serverEncoding
*
* @throws InvalidParameterException
*/
public function __construct($imapPath, $login, $password, $attachmentsDir = null, $serverEncoding = 'UTF-8')
{
$this->imapPath = trim($imapPath);
$this->imapLogin = trim($login);
$this->imapPassword = $password;
$this->setServerEncoding($serverEncoding);
if (null != $attachmentsDir) {
$this->setAttachmentsDir($attachmentsDir);
}
}
2.2 郵件信息相關(guān)的成員成員
所屬類(lèi)
說(shuō)明
示例searchMailbox($criteria = 'ALL', $disableServerEncoding = false)
PhpImap\Mailbox
根據(jù) $criteria 獲取郵箱中的郵件列表 ,可用的 $criteria 參數(shù)參見(jiàn) https://www.php.net/imap_search
-
getMail($mailId, $markAsSeen = true)
PhpImap\Mailbox
根據(jù)郵件的 $mailId 獲取郵件數(shù)據(jù) ,如果獲取了附件并設(shè)置了附件的默認(rèn)存儲(chǔ)路徑 ,它會(huì)自動(dòng)將郵件附件保存到該路徑 ,返回 PhpImap\IncomingMail 實(shí)例
-
getMailHeader($mailId)
PhpImap\Mailbox
根據(jù)郵件的 $mailId 獲取郵件數(shù)據(jù) ,返回 PhpImap\IncomingMailHeader 實(shí)例
-
getMailsInfo(array $mailsIds)
PhpImap\Mailbox
獲取一組郵件的信息
Array ( [0] => stdClass Object ( [subject] => test [from] => 蒼松 拔雨 [to] => "cangsongbayu@163.com" [date] => Sun, 5 Jan 2020 22:39:23 +0000 [message_id] => [size] => 7364 [uid] => 1524851185 [msgno] => 1 [recent] => 0 [flagged] => 0 [answered] => 0 [deleted] => 0 [seen] => 0 [draft] => 0 [udate] => 1578263965 ) )
$textPlain
PhpImap\IncomingMail
以普通文本格式返回郵件內(nèi)容
-
$textHtml
PhpImap\IncomingMail
以 HTML 格式返回郵件內(nèi)容
-
embedImageAttachments()
PhpImap\IncomingMail
將 $textHtml 中的圖片轉(zhuǎn)為 base64
-
getRawMail($msgId, $markAsSeen = true)
PhpImap\Mailbox
返回郵件的原始數(shù)據(jù)信息
-
getMailMboxFormat($mailId)
PhpImap\Mailbox
以 MBOX 格式返回郵件內(nèi)容
-
2.3 郵件附件相關(guān)的成員成員
所屬類(lèi)
說(shuō)明
示例hasAttachments()
PhpImap\IncomingMail
如果郵件中有附件返回 true
-
getAttachments()
PhpImap\IncomingMail
返回一個(gè)數(shù)組 ,數(shù)組的每一項(xiàng)都是 PhpImap\IncomingMailAttachment 實(shí)例
-
removeAttachment($id)
PhpImap\IncomingMail
根據(jù)附件的 id 刪除附件( 不會(huì)刪除文件 )
-
setAttachmentsIgnore($attachmentsIgnore)
PhpImap\Mailbox
設(shè)置是否獲取郵件中的附件
-
getAttachmentsIgnore()
PhpImap\Mailbox
返回 bool ,true 表示是否自動(dòng)獲取附件
-
setAttachmentsDir($attachmentsDir)
PhpImap\Mailbox
設(shè)置附件的存儲(chǔ)路徑
-
getAttachmentsDir()
PhpImap\Mailbox
返回當(dāng)前設(shè)置的附件存儲(chǔ)路徑
-
$id
PhpImap\IncomingMailAttachment
附件的 id
08fda0244b5397e030ee401fd2bea5b24f78a72b
$name
PhpImap\IncomingMailAttachment
附件的文件名稱(chēng)
imap.jpg
$file_path
PhpImap\IncomingMailAttachment
附件的存儲(chǔ)路徑 ,訪問(wèn)這個(gè)值時(shí)應(yīng)該使用屬性名 filePath ,否則會(huì)拋出一個(gè) Notice
/var/www/uploads/1524851183_08fda0244b5397e030ee401fd2bea5b24f78a72b_2.jpg
getMimeType()
PhpImap\IncomingMailAttachment
返回附件的 MIME 類(lèi)型
image/jpeg; charset=binary
getContents()
PhpImap\IncomingMailAttachment
返回附件的內(nèi)容
-
setFilePath($filePath)
PhpImap\IncomingMailAttachment
設(shè)置附件的存儲(chǔ)路徑 ,即 $file_path
-
saveToDisk()
PhpImap\IncomingMailAttachment
根據(jù) $file_path 將附件存儲(chǔ)到磁盤(pán) ,成功返回 true
-
2.4 郵箱信息相關(guān)的成員成員
所屬類(lèi)
說(shuō)明
示例getListingFolders($pattern = '*')
PhpImap\Mailbox
返回郵箱中列出的文件夾列表
-
countMails()
PhpImap\Mailbox
獲取郵箱中郵件的數(shù)量
-
getMailboxes($search = '*')
PhpImap\Mailbox
返回郵箱中所有的文件夾列表
-
checkMailbox()
PhpImap\Mailbox
返回當(dāng)前郵箱相關(guān)的信息
-
2.5 設(shè)置郵件的成員成員
所屬類(lèi)
說(shuō)明
示例deleteMail($mailId)
PhpImap\Mailbox
根據(jù) $mailId 刪除郵件
-
setFlag(array $mailsIds, $flag)
PhpImap\Mailbox
設(shè)置一組郵件的標(biāo)記 ,可用的值有 RFC2060 規(guī)定的 \Seen 、\Answered 、\Flagged 、 \Deleted 、\Draft
-
clearFlag(array $mailsIds, $flag)
PhpImap\Mailbox
刪除一組郵件的標(biāo)記 ,可用的值有 RFC2060 規(guī)定的 \Seen 、\Answered 、\Flagged 、 \Deleted 、\Draft
-
markMailsAsImportant(array $mailId)
PhpImap\Mailbox
將郵件標(biāo)記為 \Flagged
-
markMailAsRead($mailId)
PhpImap\Mailbox
將郵件標(biāo)記為 \Seen
-
markMailsAsRead(array $mailId)
PhpImap\Mailbox
將一組郵件標(biāo)記為 \Seen
-
markMailAsUnread($mailId)
PhpImap\Mailbox
刪除郵件的標(biāo)記 \Seen
-
markMailsAsUnread(array $mailId)
PhpImap\Mailbox
刪除一組郵件的標(biāo)記 \Seen
-
2.6 連接相關(guān)的成員成員
所屬類(lèi)
說(shuō)明
示例disconnect()
PhpImap\Mailbox
與 IMAP 服務(wù)器斷開(kāi)連接
-
getLogin()
PhpImap\Mailbox
返回 IMAP 登錄信息 ,通常是郵件地址
cangsongbayu@163.com
getImapPath()
PhpImap\Mailbox
返回 IMAP 路徑
{imap.163.com:143}
2.7 其他配置相關(guān)的成員成員
所屬類(lèi)
說(shuō)明
示例setServerEncoding($serverEncoding)
PhpImap\Mailbox
設(shè)置服務(wù)器使用的編碼
-
getServerEncoding()
PhpImap\Mailbox
返回當(dāng)前設(shè)置的服務(wù)器編碼
-
3. IncomingMailHeader
getMailHeader() 方法會(huì)返回郵件的 IncomingMailHeader 實(shí)例 ,下面看可以從 IncomingMailHeader 中提取到哪些信息屬性
說(shuō)明
示例id
郵件的 id
1524851188
date
郵件的發(fā)送時(shí)間
2020-01-07T02:04:27+08:00
headersRaw
郵件的原數(shù)據(jù)
-
headers
郵件原數(shù)據(jù)中提取出的數(shù)據(jù)
-
subject
郵件的主題
-
fromHost
發(fā)件人 host
qq.com
fromName
發(fā)件人名稱(chēng)
-
fromAddress
發(fā)件人郵箱
cangsongbayu@qq.com
senderHost
收件人 host
163.com
senderName
收件人名稱(chēng)
-
senderAddress
收件人郵箱
cangsongbayu@163.com
to
收件人數(shù)組
[to] => Array([cangsongbayu@163.com] => cangsongbayu)
cc
抄送人數(shù)組
[cc] => Array([cangsongbayu@163.com] => cangsongbayu)
bcc
密送人數(shù)組
[bcc] => Array()
replyTo
回復(fù)人數(shù)組
[replyTo] => Array([1228950011@qq.com] => cangsongbayu)
headers->date
郵件的發(fā)送時(shí)間
Tue, 7 Jan 2020 02:42:27 +0800
headers->subject
郵件的主題 ,可能未解碼
=?gb18030?B?suLK1MPXy8mzrcvN?=
headers->toaddress
收件人名稱(chēng) ,可能未解碼
=?gb18030?B?Y2FuZ3NvbmdiYXl1?=
headers->to
收件人數(shù)組 ,數(shù)組中每一項(xiàng)都是 stdClass ,分別有 personal 、mailbox 、host 三個(gè)屬性
Array ( [0] => stdClass Object ( [personal] => =?gb18030?B?Y2FuZ3NvbmdiYXl1?= [mailbox] => cangsongbayu [host] => 163.com ) )
headers->fromaddress
發(fā)件人名稱(chēng) ,可能未解碼
?gb18030?B?stTLybDO0+o=?= 1228950011@qq.com
headers->from
發(fā)件人數(shù)組 ,數(shù)組中每一項(xiàng)都是 stdClass ,分別有 personal 、mailbox 、host 三個(gè)屬性
Array ( [0] => stdClass Object ( [personal] => =?gb18030?B?stTLybDO0+o=?= [mailbox] => 1228950011 [host] => qq.com ) )
headers->ccaddress
抄送人名稱(chēng) ,可能是未解碼
?gb18030?B?Y2FuZ3NvbmdiYXl1?=
headers->cc
抄送人數(shù)組 , 數(shù)組中每一項(xiàng)都是 stdClass ,分別有 personal 、mailbox 、host 三個(gè)屬性
Array ( [0] => stdClass Object ( [personal] => =?gb18030?B?Y2FuZ3NvbmdiYXl1?= [mailbox] => cangsongbayu [host] => 163.com ) )
headers->reply_toaddress
回復(fù)人名稱(chēng) ,可能未解碼
?gb18030?B?stTLybDO0+o=?= 1228950011@qq.com
headers->reply_to
回復(fù)人數(shù)組 , 數(shù)組中每一項(xiàng)都是 stdClass ,分別有 personal 、mailbox 、host 三個(gè)屬性
Array ( [0] => stdClass Object ( [personal] => =?gb18030?B?stTLybDO0+o=?= [mailbox] => 1228950011 [host] => qq.com ) )
headers->senderaddress
發(fā)件人名稱(chēng) ,可能未解碼
?gb18030?B?stTLybDO0+o=?= 1228950011@qq.com
headers->sender
發(fā)件人數(shù)組 , 數(shù)組中每一項(xiàng)都是 stdClass ,分別有 personal 、mailbox 、host 三個(gè)屬性
Array ( [0] => stdClass Object ( [personal] => =?gb18030?B?stTLybDO0+o=?= [mailbox] => 1228950011 [host] => qq.com ) )
4. 返回值一覽
4.1 PhpImap\Mailbox 的 checkMailbox() 的返回值
返回一個(gè) stdClassstdClass Object
(
[Date] => Mon, 6 Jan 2020 06:45:48 +0800
[Driver] => imap
[Mailbox] => {imap.163.com:143/imap/tls/user="cangsongbayu@163.com"}INBOX
[Nmsgs] => 2
[Recent] => 2
)成員
說(shuō)明
示例Date
根據(jù) RFC2822 格式化的當(dāng)前系統(tǒng)時(shí)間
Mon, 6 Jan 2020 05:46:26 +0800
Dirver
訪問(wèn)此郵箱使用的協(xié)議
POP3 、IMAP 、NNTP
MailBox
郵箱名稱(chēng)
{imap.163.com:143/imap/tls/user="cangsongbayu@163.com"}INBOX
Nmsgs
郵箱中的郵件數(shù)量
1
Recent
郵箱中最近的郵件數(shù)量
0
4.2 PhpImap\Mailbox 的 getMailsInfo(array $mailsIds) 的返回值
返回的數(shù)組中每一項(xiàng)都是 stdClass ,包含了對(duì)應(yīng)郵件的一些描述信息Array
(
[0] => stdClass Object
(
[subject] => test
[from] => 蒼松 拔雨
[to] => "cangsongbayu@163.com"
[date] => Sun, 5 Jan 2020 22:39:23 +0000
[message_id] =>
[size] => 7364
[uid] => 1524851185
[msgno] => 1
[recent] => 0
[flagged] => 0
[answered] => 0
[deleted] => 0
[seen] => 0
[draft] => 0
[udate] => 1578263965
)
[1] => stdClass Object
(
[subject] => test subject
[from] => " 蒼松拔雨 " <1228950011@qq.com>
[to] => " cangsongbayu "
[date] => Mon, 6 Jan 2020 06:41:46 +0800
[message_id] =>
[size] => 2324
[uid] => 1524851186
[msgno] => 2
[recent] => 0
[flagged] => 0
[answered] => 0
[deleted] => 0
[seen] => 0
[draft] => 0
[udate] => 1578264108
)
)成員
說(shuō)明
示例subject
郵件主題
-
from
發(fā)件人名稱(chēng)
-
sender
發(fā)件人郵箱 ,不一定有
-
to
收件人 ,不一定是郵箱地址
-
date
發(fā)送時(shí)間
Mon, 6 Jan 2020 06:41:46 +0800
size
郵件的字節(jié)大小
-
uid
郵箱中郵件的 uid
-
msgno
郵箱中的郵件序列號(hào)
-
recent
表示郵件是否被標(biāo)記為 \Recent
-
flagged
表示郵件是否被標(biāo)記為 \Flagged
-
answered
表示郵件是否被標(biāo)記為 \Answered
-
deleted
表示郵件是否被標(biāo)記為 \Deleted
-
seen
表示郵件是否被標(biāo)記為 \Seen
-
draft
表示郵件是否被標(biāo)記為 \Draft
-
udate
Unix 時(shí)間戳格式的 date
-
4.3 PhpImap\Mailbox 的 getListingFolders($pattern = '*') 的返回值
返回郵箱中列出的文件夾列表Array
(
[0] => {imap.163.com:143}INBOX
[1] => {imap.163.com:143}草稿箱
[2] => {imap.163.com:143}已發(fā)送
[3] => {imap.163.com:143}已刪除
[4] => {imap.163.com:143}垃圾郵件
[5] => {imap.163.com:143}病毒文件夾
)
4.4 PhpImap\Mailbox 的 getMailboxes() 的返回值
返回郵箱中所有的文件夾列表Array
(
[0] => Array
(
[fullpath] => {imap.163.com:143}INBOX
[attributes] => 0
[delimiter] => /
[shortpath] => INBOX
)
[1] => Array
(
[fullpath] => {imap.163.com:143}草稿箱
[attributes] => 0
[delimiter] => /
[shortpath] => 草稿箱
)
[2] => Array
(
[fullpath] => {imap.163.com:143}已發(fā)送
[attributes] => 0
[delimiter] => /
[shortpath] => 已發(fā)送
)
[3] => Array
(
[fullpath] => {imap.163.com:143}已刪除
[attributes] => 0
[delimiter] => /
[shortpath] => 已刪除
)
[4] => Array
(
[fullpath] => {imap.163.com:143}垃圾郵件
[attributes] => 0
[delimiter] => /
[shortpath] => 垃圾郵件
)
[5] => Array
(
[fullpath] => {imap.163.com:143}病毒文件夾
[attributes] => 0
[delimiter] => /
[shortpath] => 病毒文件夾
)
)
5. 參數(shù)補(bǔ)充說(shuō)明
5.1 PhpImap\Mailbox 的 setFlag(array $mailsIds, $flag) 參數(shù)說(shuō)明參數(shù)
說(shuō)明
示例$mailsIds
郵件的 $mailId 組成的數(shù)組
-
$flag
可用的值有 RFC2060 規(guī)定的 \Seen 、\Answered 、\Flagged 、 \Deleted 、\Draft
-標(biāo)記
說(shuō)明
示例\Seen
將郵件標(biāo)記為已讀
$mailBox->setFlag($mailsIds, '\Seen')
\Deleted
將郵件標(biāo)記為已刪除
$mailBox->setFlag($mailsIds, '\Deleted')
\Draft
將郵件標(biāo)記為草案
$mailBox->setFlag($mailsIds, '\Draft')
\Flagged
將郵件標(biāo)記為重要郵件
$mailBox->setFlag($mailsIds, '\Flagged')有錯(cuò)誤的地方歡迎指出 ,或者補(bǔ)充也可以 ,感謝每個(gè)對(duì)我提出建議的人本作品采用《CC 協(xié)議》,轉(zhuǎn)載必須注明作者和本文鏈接
總結(jié)
以上是生活随笔為你收集整理的php imap 附件,学习猿地-PHP-imap 使用参考的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算机一级题库ps视频,计算机一级Pho
- 下一篇: 《托马斯大学微积分》习题1.4——31