是否可以在到达收件箱之前使用php更改原始邮件的主题?

时间:2013-08-23 06:11:26

标签: php email cakephp

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

可以用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();

?>

2 个答案:

答案 0 :(得分:0)

PHP不能更改文件的一行,但它可以覆盖整个文件。您需要对文件进行ovwerwrite,搜索文件,我会通过使用搜索单词'Subject'的explode函数或者解析以'Subject'开头的行的preg_match来替换它,并替换您将在'$'中精确存储的值。使用str_replace fnctn匹配[0]'。

但是,如果您在Linux系统上运行,并且您有一个postfix等邮件服务器,则可以通过调用'exec'或'system'命令来调用Sed&amp; Awk脚本。只要知道启用此功能的危险,但有相当多的常识,你不应该有任何麻烦。 顺便说一句,Sed&amp; Awk的特殊目的是修改文件,并将电子邮件视为文件。

答案 1 :(得分:-1)

回音时你能做到以下几点吗?:

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

或者这是前期的:

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