我有一个有效的 procmail 配置。
这是 rc.filters :
:0 w :a.lock
* ^From:(.*\<)?(try@gmail\.com)\>
| $HOME/executable/a.out
该文件编译并运行,procmail 传递邮件,可执行文件将内容写入输出文件。
#include <stdlib.h>
#include <iostream>
#include <fstream>
using namespace std;
int main(void)
{
ofstream myfile;
myfile.open ("output.txt");
string line;
while (getline(cin, line))
{
myfile << line << endl;
}
myfile.close();
return EXIT_SUCCESS;
}
问题是我需要一个带有内容的 cin 对象来传递给Mimetic库的构造函数。我需要这个可执行文件才能工作:
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <mimetic/mimetic.h>
using namespace std;
using namespace mimetic;
int main(void)
{
ofstream myfile;
myfile.open ("output.txt");
MimeEntity me(cin);
const Header& h = me.header();
string subjectString = h.subject();
myfile << subjectString;
myfile << "Check";
myfile.close();
return EXIT_SUCCESS;
}
如果我收到一条名为 message.txt 的 Mime 消息,并使用第二个代码执行以下操作:
cat message.txt | ./a.out
./a.out < message.txt
在这两种情况下,可执行文件都有效,我在 output.txt 中获得了主题,
但是对于某些人来说,当它被调用并且通过 procmail 管道传输的内容时它不起作用,
我在 output.txt 中得到的只是“检查”,这意味着该文件至少被调用。
procmail.log 声明一切都很好。