我只是想知道是否可以从已收到的电子邮件中提取信息然后再使用。我更喜欢PHP;但是,如果Asp.net也可以,那么我愿意尝试。
我只需要它,以便代码(PHP或Asp.net)自动以某种方式“爆炸”信息,以便可以读取正文中的内容并将其用于其他目的。
答案 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');
您可以根据要从电子邮件中提取的内容来播放参数和输出。