为了简单的测试目的,我在我的 Linux 机器上本地发送邮件。我只需在命令行中输入 mail
即可查看收到的邮件。我现在想从 php.ini 中获取一组收到的电子邮件。有人知道我该怎么做吗?
欢迎提供所有建议!
[编辑]
解释。当我从 php 中向“kramer65@localhost”发送电子邮件时,我可以通过运行引用/usr/bin/mail 的 mail
来查看电子邮件。其输出是这样的:
Mail version 8.1.2 01/15/2001. Type ? for help.
"/var/mail/kramer65": 1 message 1 new
>N 1 kramer65@php0 Fri Apr 25 11:49 16/501 THIS IS THE SUBJECT
&
Message 1:
From kramer65@php0 Fri Apr 25 11:49:25 2014
X-Original-To: kramer65@localhost
To: kramer65@localhost
Subject: THIS IS THE SUBJECT
X-PHP-Originating-Script: 1007:php shell code
Date: Fri, 25 Apr 2014 11:49:25 +0200 (CEST)
From: kramer65@php0 (kramer65)
THIS IS THE BODY OF THE MESSAGE
我现在想在 php 的数组中获取这些电子邮件的输出。有什么想法可以做到这一点吗?
最佳答案
您可以使用 file_get_contents('filename') 将收到的电子邮件文件加载到字符串中; 如果你想创建一个多维数组,那么在收到的电子邮件文件中应该有一定的结构来分隔你的 php 代码中的电子邮件发件人、标题、文本等。
如果您不能(或不想)分离发件人、标题、文本等,您仍然可以制作完整邮件的数组。
如果将每封电子邮件保存在单独的文件中,它将如下所示:
$directory = 'path/to/your/mails/';
$files = glob($directory.'*.txt');
$filescount = count($files);
$mailArray = array();
for ($i = 0; $i < $filescount; $i++)
{
$mailString = file_get_contents('mail'.$i);
$mailArray[] = $mailString;
}
在此示例中,我假设您邮件的文件类型是 .txt 邮件的文件名也必须是 mail0、mail1、mail2 等。
如果我完全误解了这个问题,我很抱歉;)
关于php - 使用php从/usr/bin/mail读取邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23288856/