你好,我的MacBookPro上有一个文件夹,里面有一堆outlook 2011中的电子邮件文件。我正试图从他们的电子邮件地址中获取信息,但我发现的所有链接都要求我购买c#之类的软件或代码。
真的这么难吗?我要做的就是从一堆旧邮件中获取一个邮件列表。
我知道一些python, R和SQL。如果有人能给我一些简单的方法来把电子邮件地址转换成文本文件,或者把电子邮件文件转换成csv文件,而不需要购买软件或用c#编码,我将非常感激。
使用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
运行
我需要在一个现成的脚本中使用相同的功能,所以我自己编写了一个。
概括地说:
- 在浏览器中从PHP服务器url打开extractor.php
- 选择。eml文件所在的硬盘文件夹
- 如果要从电子邮件的内容中提取发件人、收件人和/或收件人的地址,请选择
- 点击查找电子邮件地址按钮
该工具将递归地分析您的文件夹,并在文本区显示电子邮件地址。
Email Address Extractor可以在Github上找到:https://github.com/migliori/email-address-extractor