切换导航条
此项目
正在载入...
登录
周海龙
/
mail-serve
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
邓超
10 months ago
提交
f44e3dca8885aa7ee803a6abaa3e7fc7942fc435
1 个父辈
e67ceb74
x
隐藏空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
42 行增加
和
1 行删除
lib/Imap/Parse/MessageItem.php
lib/Imap/Parse/Messager.php
lib/Imap/Request/Msg.php
lib/Imap/Parse/MessageItem.php
查看文件 @
f44e3dc
...
...
@@ -64,6 +64,12 @@ class MessageItem {
*/
public
Header
$header
;
/**
* 邮件的mime结构体
* @var string
*/
public
string
$bodystructure
;
/**
* @var Msg
...
...
@@ -189,6 +195,15 @@ class MessageItem {
}
}
/**
* @return bool 是否有附件
* @author:dc
* @time 2024/9/29 13:58
*/
public
function
isAttachment
()
:
bool
{
return
stripos
(
$this
->
bodystructure
,
'"attachment"'
)
!==
false
;
}
public
function
__call
(
string
$name
,
array
$arguments
)
...
...
lib/Imap/Parse/Messager.php
查看文件 @
f44e3dc
...
...
@@ -136,6 +136,32 @@ class Messager {
$this
->
item
[
$msgno
]
->
size
=
array_shift
(
$tokens
);
break
;
}
//* 1 FETCH (UID 1568602720 INTERNALDATE "16-Sep-2019 10:58:40 +0800" FLAGS (\Seen) BODYSTRUCTURE (("text" "html" ("charset" "utf-8") NIL NIL "quoted-printable" 4115 97 NIL NI
//L NIL) "mixed" ("boundary" "----=_Part_340444_1698792253.1568602720140") NIL NIL) RFC822.HEADER {816}
case
'BODYSTRUCTURE'
:
{
$BODYSTRUCTURE
=
''
;
$leftNum
=
$RightNum
=
0
;
foreach
(
$tokens
as
$key
=>
$str
){
// 还有括号不对等的情况,无语了
if
(
$str
==
'RFC822.HEADER'
){
break
;
}
// 找出现的次数
$leftNum
+=
substr_count
(
$str
,
'('
);
$RightNum
+=
substr_count
(
$str
,
')'
);
// 拼接起来
$BODYSTRUCTURE
.=
' '
.
$str
;
unset
(
$tokens
[
$key
]);
// 说明找到结束了
if
(
$leftNum
===
$RightNum
){
break
;
}
}
$tokens
=
array_values
(
$tokens
);
$this
->
item
[
$msgno
]
->
bodystructure
=
$BODYSTRUCTURE
;
break
;
}
case
'RFC822.HEADER'
:
{
$str
=
trim
(
implode
(
' '
,
$tokens
));
// 是否带有字符数数量
...
...
lib/Imap/Request/Msg.php
查看文件 @
f44e3dc
...
...
@@ -119,7 +119,7 @@ class Msg extends Request{
public
function
get
()
:
Messager
{
$this
->
folder
->
exec
();
// 防止在其他文件夹下面
$this
->
cmd
(
"%sFETCH %s (UID FLAGS INTERNALDATE RFC822.SIZE RFC822.HEADER)"
,
"%sFETCH %s (UID FLAGS INTERNALDATE RFC822.SIZE
BODYSTRUCTURE
RFC822.HEADER)"
,
$this
->
isUid
?
'UID '
:
''
,
implode
(
','
,
$this
->
number
)
);
...
...
请
注册
或
登录
后发表评论