我有一个工作的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中得到的只是“Check”,这意味着该文件 至少被援引过。
procmail.log表明一切都很好。
答案 0 :(得分:0)
我不知道究竟发生了什么,但我会将std::cin
的输入捕获到字符串中,然后将从该值构造的std::istringstream
传递给{{1 }}。通过这种方式,您可以检查来自MimeEntity
的输入,同时仍由库处理它:
std::cin