如何将电子邮件正文从管道获取到程序
我正在将电子邮件发送到程序并运行一些代码。
**
我知道如何获取“发件人:”和“主题:”,但如何仅获取电子邮件正文?
**
#!/usr/bin/php -q
<?
$fd = fopen("php://stdin", "r");
while (!feof($fd)) {
$email .= fread($fd, 1024);
}
fclose($fd);
$lines = explode("\n", $email);
for ($i=0; $i < count($lines); $i++)
{
// look out for special headers
if (preg_match("/Subject:/", $lines[$i], $matches))
{
list($One,$Subject) = explode("Subject:", $lines[$i]);
list($Subject,$Gone) = explode("<", $Subject);
}
等...我如何获取电子邮件的正文内容?
I am piping an email to a program and running some code.
**
I know how to get the "From:" and the "Subject:" but how do I get only the body of the email?
**
#!/usr/bin/php -q
<?
$fd = fopen("php://stdin", "r");
while (!feof($fd)) {
$email .= fread($fd, 1024);
}
fclose($fd);
$lines = explode("\n", $email);
for ($i=0; $i < count($lines); $i++)
{
// look out for special headers
if (preg_match("/Subject:/", $lines[$i], $matches))
{
list($One,$Subject) = explode("Subject:", $lines[$i]);
list($Subject,$Gone) = explode("<", $Subject);
}
etc... HOW DO I GET THE BODY CONTENT OF THE EMAIL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
基本上,您想要标头在哪里结束,并知道它是否是多部分的,以便您可以获得电子邮件的正确部分。
以下是一些信息:
parsing raw email in php
这表示第一个双换行符应该是电子邮件正文的开头。
此页面可能会给您一些其他想法(请参阅下面的脚本):
http:// thedrupalblog.com/configuring-server-parse-email-php-script
编辑
这是一个名为 MailParse 的 PHP 扩展:
http://pecl.php.net/package/mailparse
有人围绕它构建了一个名为 MimeMailParse 的类:
http://code.google.com/p/php-mime-mail-parser/
这是一个博客讨论如何使用它的条目:
http://www.bucabay.com/web-development/a-php-mime-mail-parser-using-mailparse-extension/
Basically, you want where the headers end, and to know if it's multipart or not so you can get the right portion(s) of the email.
Here is some information:
parsing raw email in php
Which says that the first double newline should be the beginning of the body of the email.
This page might give you some other ideas (see script below):
http://thedrupalblog.com/configuring-server-parse-email-php-script
EDIT
Here is a PHP extension called MailParse:
http://pecl.php.net/package/mailparse
Somebody has built a class around it called MimeMailParse:
http://code.google.com/p/php-mime-mail-parser/
And here is a blog entry discussing how to use it:
http://www.bucabay.com/web-development/a-php-mime-mail-parser-using-mailparse-extension/