从eml文件中提取电子邮件地址

时间:2015-09-30 15:25:32

标签: macos eml

嗨我的MacBookPro上有一个文件夹,里面有一堆来自我的outlook 2011的eml文件。我试图从他们那里获取电子邮件地址,但我发现的所有链接都需要我购买C#等软件或代码。

这真的很难吗?我试图做的就是从一堆旧电子邮件中获取电子邮件列表。

我知道一些python,R和SQL。如果有人可以给我一些简单的方法来提示从电子邮件地址到文本文件或将eml文件转换为csv,而无需在C#中购买软件或编码,我真的很感激。< / p>

2 个答案:

答案 0 :(得分:2)

使用php,您可以执行以下操作:

<强> extract.php

<?php
$emails = array();

foreach(rglob("*.eml") as $eml){
    $emlContent = file_get_contents($eml);
    preg_match_all('/([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6})/i', $emlContent, $matches, PREG_PATTERN_ORDER);
    for ($i = 0; $i < count($matches[1]); $i++) {
        $emails[] .= $matches[1][$i];
    }
}


$emails = array_unique($emails);
print_r($emails);


function rglob($pattern='*', $flags = 0, $path='')
{
    $paths=glob($path.'*', GLOB_MARK|GLOB_ONLYDIR|GLOB_NOSORT);
    $files=glob($path.$pattern, $flags);
    foreach ($paths as $path) { $files=array_merge($files,rglob($pattern, $flags, $path)); }
    return $files;
}

用法:

extract.php放在包含eml文件的文件夹中,然后从终端php extract.php

运行

答案 1 :(得分:0)

我需要在现成的脚本中使用相同的功能,所以我自己编写了。

简而言之:

  • 在浏览器中从 PHP 服务器 url 打开 extractor.php
  • 选择硬盘上 .eml 文件所在的文件夹
  • 选择是否要提取发件人、收件人的地址和/或从电子邮件的内容中提取
  • 点击查找电子邮件地址按钮

该工具将递归分析您的文件夹并在文本区域中显示电子邮件地址。

电子邮件地址提取器可在 Github 上找到: https://github.com/migliori/email-address-extractor