日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php imap 附件,学习猿地-PHP-imap 使用参考

發布時間:2023/12/20 php 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php imap 附件,学习猿地-PHP-imap 使用参考 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 相關資料

php-imap 用于獲取郵件 ,但是沒有詳細的官方文檔 ,在這里整理一份分享給大家composer require php-imap/php-imap

2. php-imap 成員

2.1 構造方法參數

說明

示例$imapPath

服務地址

{imap.163.com:143}

$login

登錄名

email@163.com

$password

登錄密碼

***

$attachmentsDir

附件存儲目錄 ,如果設置了這個參數 ,郵件中的附件會自動存儲到這個目錄

-

$serverEncoding

服務器使用的字符編碼

-/**

* @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 郵件信息相關的成員成員

所屬類

說明

示例searchMailbox($criteria = 'ALL', $disableServerEncoding = false)

PhpImap\Mailbox

根據 $criteria 獲取郵箱中的郵件列表 ,可用的 $criteria 參數參見 https://www.php.net/imap_search

-

getMail($mailId, $markAsSeen = true)

PhpImap\Mailbox

根據郵件的 $mailId 獲取郵件數據 ,如果獲取了附件并設置了附件的默認存儲路徑 ,它會自動將郵件附件保存到該路徑 ,返回 PhpImap\IncomingMail 實例

-

getMailHeader($mailId)

PhpImap\Mailbox

根據郵件的 $mailId 獲取郵件數據 ,返回 PhpImap\IncomingMailHeader 實例

-

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

以普通文本格式返回郵件內容

-

$textHtml

PhpImap\IncomingMail

以 HTML 格式返回郵件內容

-

embedImageAttachments()

PhpImap\IncomingMail

將 $textHtml 中的圖片轉為 base64

-

getRawMail($msgId, $markAsSeen = true)

PhpImap\Mailbox

返回郵件的原始數據信息

-

getMailMboxFormat($mailId)

PhpImap\Mailbox

以 MBOX 格式返回郵件內容

-

2.3 郵件附件相關的成員成員

所屬類

說明

示例hasAttachments()

PhpImap\IncomingMail

如果郵件中有附件返回 true

-

getAttachments()

PhpImap\IncomingMail

返回一個數組 ,數組的每一項都是 PhpImap\IncomingMailAttachment 實例

-

removeAttachment($id)

PhpImap\IncomingMail

根據附件的 id 刪除附件( 不會刪除文件 )

-

setAttachmentsIgnore($attachmentsIgnore)

PhpImap\Mailbox

設置是否獲取郵件中的附件

-

getAttachmentsIgnore()

PhpImap\Mailbox

返回 bool ,true 表示是否自動獲取附件

-

setAttachmentsDir($attachmentsDir)

PhpImap\Mailbox

設置附件的存儲路徑

-

getAttachmentsDir()

PhpImap\Mailbox

返回當前設置的附件存儲路徑

-

$id

PhpImap\IncomingMailAttachment

附件的 id

08fda0244b5397e030ee401fd2bea5b24f78a72b

$name

PhpImap\IncomingMailAttachment

附件的文件名稱

imap.jpg

$file_path

PhpImap\IncomingMailAttachment

附件的存儲路徑 ,訪問這個值時應該使用屬性名 filePath ,否則會拋出一個 Notice

/var/www/uploads/1524851183_08fda0244b5397e030ee401fd2bea5b24f78a72b_2.jpg

getMimeType()

PhpImap\IncomingMailAttachment

返回附件的 MIME 類型

image/jpeg; charset=binary

getContents()

PhpImap\IncomingMailAttachment

返回附件的內容

-

setFilePath($filePath)

PhpImap\IncomingMailAttachment

設置附件的存儲路徑 ,即 $file_path

-

saveToDisk()

PhpImap\IncomingMailAttachment

根據 $file_path 將附件存儲到磁盤 ,成功返回 true

-

2.4 郵箱信息相關的成員成員

所屬類

說明

示例getListingFolders($pattern = '*')

PhpImap\Mailbox

返回郵箱中列出的文件夾列表

-

countMails()

PhpImap\Mailbox

獲取郵箱中郵件的數量

-

getMailboxes($search = '*')

PhpImap\Mailbox

返回郵箱中所有的文件夾列表

-

checkMailbox()

PhpImap\Mailbox

返回當前郵箱相關的信息

-

2.5 設置郵件的成員成員

所屬類

說明

示例deleteMail($mailId)

PhpImap\Mailbox

根據 $mailId 刪除郵件

-

setFlag(array $mailsIds, $flag)

PhpImap\Mailbox

設置一組郵件的標記 ,可用的值有 RFC2060 規定的 \Seen 、\Answered 、\Flagged 、 \Deleted 、\Draft

-

clearFlag(array $mailsIds, $flag)

PhpImap\Mailbox

刪除一組郵件的標記 ,可用的值有 RFC2060 規定的 \Seen 、\Answered 、\Flagged 、 \Deleted 、\Draft

-

markMailsAsImportant(array $mailId)

PhpImap\Mailbox

將郵件標記為 \Flagged

-

markMailAsRead($mailId)

PhpImap\Mailbox

將郵件標記為 \Seen

-

markMailsAsRead(array $mailId)

PhpImap\Mailbox

將一組郵件標記為 \Seen

-

markMailAsUnread($mailId)

PhpImap\Mailbox

刪除郵件的標記 \Seen

-

markMailsAsUnread(array $mailId)

PhpImap\Mailbox

刪除一組郵件的標記 \Seen

-

2.6 連接相關的成員成員

所屬類

說明

示例disconnect()

PhpImap\Mailbox

與 IMAP 服務器斷開連接

-

getLogin()

PhpImap\Mailbox

返回 IMAP 登錄信息 ,通常是郵件地址

cangsongbayu@163.com

getImapPath()

PhpImap\Mailbox

返回 IMAP 路徑

{imap.163.com:143}

2.7 其他配置相關的成員成員

所屬類

說明

示例setServerEncoding($serverEncoding)

PhpImap\Mailbox

設置服務器使用的編碼

-

getServerEncoding()

PhpImap\Mailbox

返回當前設置的服務器編碼

-

3. IncomingMailHeader

getMailHeader() 方法會返回郵件的 IncomingMailHeader 實例 ,下面看可以從 IncomingMailHeader 中提取到哪些信息屬性

說明

示例id

郵件的 id

1524851188

date

郵件的發送時間

2020-01-07T02:04:27+08:00

headersRaw

郵件的原數據

-

headers

郵件原數據中提取出的數據

-

subject

郵件的主題

-

fromHost

發件人 host

qq.com

fromName

發件人名稱

-

fromAddress

發件人郵箱

cangsongbayu@qq.com

senderHost

收件人 host

163.com

senderName

收件人名稱

-

senderAddress

收件人郵箱

cangsongbayu@163.com

to

收件人數組

[to] => Array([cangsongbayu@163.com] => cangsongbayu)

cc

抄送人數組

[cc] => Array([cangsongbayu@163.com] => cangsongbayu)

bcc

密送人數組

[bcc] => Array()

replyTo

回復人數組

[replyTo] => Array([1228950011@qq.com] => cangsongbayu)

headers->date

郵件的發送時間

Tue, 7 Jan 2020 02:42:27 +0800

headers->subject

郵件的主題 ,可能未解碼

=?gb18030?B?suLK1MPXy8mzrcvN?=

headers->toaddress

收件人名稱 ,可能未解碼

=?gb18030?B?Y2FuZ3NvbmdiYXl1?=

headers->to

收件人數組 ,數組中每一項都是 stdClass ,分別有 personal 、mailbox 、host 三個屬性

Array ( [0] => stdClass Object ( [personal] => =?gb18030?B?Y2FuZ3NvbmdiYXl1?= [mailbox] => cangsongbayu [host] => 163.com ) )

headers->fromaddress

發件人名稱 ,可能未解碼

?gb18030?B?stTLybDO0+o=?= 1228950011@qq.com

headers->from

發件人數組 ,數組中每一項都是 stdClass ,分別有 personal 、mailbox 、host 三個屬性

Array ( [0] => stdClass Object ( [personal] => =?gb18030?B?stTLybDO0+o=?= [mailbox] => 1228950011 [host] => qq.com ) )

headers->ccaddress

抄送人名稱 ,可能是未解碼

?gb18030?B?Y2FuZ3NvbmdiYXl1?=

headers->cc

抄送人數組 , 數組中每一項都是 stdClass ,分別有 personal 、mailbox 、host 三個屬性

Array ( [0] => stdClass Object ( [personal] => =?gb18030?B?Y2FuZ3NvbmdiYXl1?= [mailbox] => cangsongbayu [host] => 163.com ) )

headers->reply_toaddress

回復人名稱 ,可能未解碼

?gb18030?B?stTLybDO0+o=?= 1228950011@qq.com

headers->reply_to

回復人數組 , 數組中每一項都是 stdClass ,分別有 personal 、mailbox 、host 三個屬性

Array ( [0] => stdClass Object ( [personal] => =?gb18030?B?stTLybDO0+o=?= [mailbox] => 1228950011 [host] => qq.com ) )

headers->senderaddress

發件人名稱 ,可能未解碼

?gb18030?B?stTLybDO0+o=?= 1228950011@qq.com

headers->sender

發件人數組 , 數組中每一項都是 stdClass ,分別有 personal 、mailbox 、host 三個屬性

Array ( [0] => stdClass Object ( [personal] => =?gb18030?B?stTLybDO0+o=?= [mailbox] => 1228950011 [host] => qq.com ) )

4. 返回值一覽

4.1 PhpImap\Mailbox 的 checkMailbox() 的返回值

返回一個 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

)成員

說明

示例Date

根據 RFC2822 格式化的當前系統時間

Mon, 6 Jan 2020 05:46:26 +0800

Dirver

訪問此郵箱使用的協議

POP3 、IMAP 、NNTP

MailBox

郵箱名稱

{imap.163.com:143/imap/tls/user="cangsongbayu@163.com"}INBOX

Nmsgs

郵箱中的郵件數量

1

Recent

郵箱中最近的郵件數量

0

4.2 PhpImap\Mailbox 的 getMailsInfo(array $mailsIds) 的返回值

返回的數組中每一項都是 stdClass ,包含了對應郵件的一些描述信息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

)

)成員

說明

示例subject

郵件主題

-

from

發件人名稱

-

sender

發件人郵箱 ,不一定有

-

to

收件人 ,不一定是郵箱地址

-

date

發送時間

Mon, 6 Jan 2020 06:41:46 +0800

size

郵件的字節大小

-

uid

郵箱中郵件的 uid

-

msgno

郵箱中的郵件序列號

-

recent

表示郵件是否被標記為 \Recent

-

flagged

表示郵件是否被標記為 \Flagged

-

answered

表示郵件是否被標記為 \Answered

-

deleted

表示郵件是否被標記為 \Deleted

-

seen

表示郵件是否被標記為 \Seen

-

draft

表示郵件是否被標記為 \Draft

-

udate

Unix 時間戳格式的 date

-

4.3 PhpImap\Mailbox 的 getListingFolders($pattern = '*') 的返回值

返回郵箱中列出的文件夾列表Array

(

[0] => {imap.163.com:143}INBOX

[1] => {imap.163.com:143}草稿箱

[2] => {imap.163.com:143}已發送

[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}已發送

[attributes] => 0

[delimiter] => /

[shortpath] => 已發送

)

[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. 參數補充說明

5.1 PhpImap\Mailbox 的 setFlag(array $mailsIds, $flag) 參數說明參數

說明

示例$mailsIds

郵件的 $mailId 組成的數組

-

$flag

可用的值有 RFC2060 規定的 \Seen 、\Answered 、\Flagged 、 \Deleted 、\Draft

-標記

說明

示例\Seen

將郵件標記為已讀

$mailBox->setFlag($mailsIds, '\Seen')

\Deleted

將郵件標記為已刪除

$mailBox->setFlag($mailsIds, '\Deleted')

\Draft

將郵件標記為草案

$mailBox->setFlag($mailsIds, '\Draft')

\Flagged

將郵件標記為重要郵件

$mailBox->setFlag($mailsIds, '\Flagged')有錯誤的地方歡迎指出 ,或者補充也可以 ,感謝每個對我提出建議的人本作品采用《CC 協議》,轉載必須注明作者和本文鏈接

總結

以上是生活随笔為你收集整理的php imap 附件,学习猿地-PHP-imap 使用参考的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。