如何使用asp.net或php从电子邮件中提取信息

时间:2017-02-21 21:18:45

标签: php asp.net email

我只是想知道是否可以从已收到的电子邮件中提取信息然后再使用。我更喜欢PHP;但是,如果Asp.net也可以,那么我愿意尝试。

我只需要它,以便代码(PHP或Asp.net)自动以某种方式“爆炸”信息,以便可以读取正文中的内容并将其用于其他目的。

1 个答案:

答案 0 :(得分:1)

您似乎正在寻找一种在PHP中解析电子邮件的方法。

有一个PHP模块: http://php.net/manual/fr/book.mailparse.php

您需要先安装此模块(通过pecl,yum,apt或直接安装,具体取决于您的系统)。例如:

pecl install mailparse

你还需要在其他php模块之后加载它。您需要使用php模块的ini文件在系统中找到确切的位置。它可以是,例如:

/etc/php.d/(Redhat / Centos) 要么 /etc/php/7.0/fpm/conf.d/(Ubuntu with fpm PHP 7)

如果你运行phpinfo(),它会给你一行 “使用此位置扫描此目录以获取其他.ini文件”。

在该目录中创建一个名为99-mailparse.ini的文件,以便最后加载。将这些行放入此文件中:

extension=mbstring.so 
extension=mailparse.so

请注意,必须在mailparse之前加载mbstring。

如果您的服务器运行Windows,请将.so替换为.dll。

如果您使用Web服务器(例如Apache)运行php,则重新加载它。

虽然您可以直接使用mailparser,但更简单的解决方案是使用它周围的包装器:

https://github.com/php-mime-mail-parser/php-mime-mail-parser

将其安装到您的项目中:

composer require php-mime-mail-parser/php-mime-mail-parser

然后包含在你的php文件中:

require_once __DIR__.'/vendor/autoload.php';

它使您可以直接访问所有邮件组件(带有/来自字段,主题,不同格式的主体,附件等的标题)。

例如,要从原始电子邮件文本字符串中提取邮件正文(例如$ emailRawText):

$Parser = new PhpMimeMailParser\Parser();

$Parser->setText($emailRawText);

$text = $Parser→getMessageBody('text');

您可以根据要从电子邮件中提取的内容来播放参数和输出。