PHP使用imap处理邮件

需求: 把接收到的邮件依次分发到不同邮件文件夹,例如第1封邮件到A文件夹第2封到B文件夹第3封到A文件夹

一般邮件客户端只支持按某种关键字来划分到不同文件夹,像这种依次分发就需要我们手动处理
发送邮件我们一般都用phpmailer包来发送,但接收邮件该怎么处理呢

php扩展imap

imap扩展是用来处理邮件相关的,需要安装、并且检查是否在ini中被禁用

code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 邮箱配置信息
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX'; //IMAP服务器
$username = '****@gmail.com';//邮箱
$password = '******'; //邮箱授权码
$inbox = imap_open($hostname, $username, $password); //建立连接

//邮箱文件列表
//$boxList = imap_list($inbox, '{imap.gmail.com:993/imap/ssl}', '*');

$search_date = '26-Sep-2024'; //查找某个日期之后的邮件
$emails = imap_search($inbox, 'SINCE "' . $search_date . '"'); //UNSEEN 未读邮件

foreach ($emails as $id) {
imap_mail_move($inbox, $id, ‘INBOX.A’); //从收件箱中把该邮件移动到A文件夹
}
imap_close($inbox);

注意事项

1,要开启邮箱的imap服务并获得授权码
2,163的邮箱在建立连接时会提示 login unsafe,解决方案参考
https://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac2eda07326646e6eb0

https://blog.csdn.net/LYD521000/article/details/133160119