php - 使用php从/usr/bin/mail读取邮件

标签 php linux email

为了简单的测试目的,我在我的 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/

相关文章:

php - 小花 3 : Example of model with validation

php - 适用于嵌入式浏览器中网站的 Google OAuth

json - JQ 使用 bash 创建 json 数组

linux - 我如何并行grep

php - 如何在引号中获取 WordPress 帖子作者电子邮件

c# - 邮件正文中添加双点

php - 为什么 document.write + echo 不起作用?

php - Ajax/JQuery 数据库访问/互斥

c - execv 等待输入输入而不是执行程序

使用 PHP Mailer 发送 PHP 电子邮件