0

我目前正在从邮件服务器读取邮件,我想更改邮件服务器中所有邮件的主题,并在其上附加一些字符并将其发送到用户收件箱。

是否可以使用 php,如果可以,我该怎么做?

<?php

require_once('MimeMailParser.class.php');

$path = 'path/to/mail.txt';
$Parser = new MimeMailParser();
$Parser->setPath($path);

$to = $Parser->getHeader('to');
$from = $Parser->getHeader('from');
$subject = $Parser->getHeader('subject');
$text = $Parser->getMessageBody('text');
$html = $Parser->getMessageBody('html');
$attachments = $Parser->getAttachments();

?>
4

2 回答 2

0

PHP 不能改变文件的一行,但它可以覆盖整个文件。你需要重写文件,搜索文件,我通常会使用explode函数搜索单词'Subject'或preg_match来解析以'Subject'开头的行并替换你通常存储在'$中的值使用 str_replace fnctn 匹配 [0]'。

但是,如果您在 linux 系统上运行,并且您有一个邮件服务器,例如 postfix,您可以通过调用“exec”或“system”命令来调用 Sed&Awk 脚本。请注意启用此功能的危险,但根据相当多的常识,您应该不会遇到任何麻烦。顺便说一句,Sed&Awk 的特殊用途是修改文件,并且可以将电子邮件视为文件。

于 2014-10-01T21:58:19.120 回答
-1

回显时,您不能只执行以下操作吗?:

$subject = $Parser->getHeader('subject') . "You're text appended here.";

或者这个用于前置:

$subject = "You're text prepended here." . $Parser->getHeader('subject');
于 2013-08-23T07:04:37.543 回答