我一直在探索haraka (http://haraka.github.io ),并成功地在我的linux机器上安装了它。我想知道是否有关于使用haraka解析电子邮件元标题和内容主体的好教程。我检查了他们的手册,但找不到。任何关于如何做到这一点的想法/建议都将不胜感激。谢谢。
以下是我检索电子邮件正文的脚本:
var winston = require('winston');
exports.hook_data = function (next, connection) {
winston.log('info', '----------------------------------------');
winston.log('info', 'hook_data');
// enable mail body parsing
connection.transaction.parse_body = true;
winston.log('info', "body="+connection.transaction.body);
winston.log('info', "mail_from="+connection.transaction.mail_from);
next();
}产出:
{"level":"info","message":"----------------------------------------","timestamp":"2015-01-12T07:16:28.216Z"}
{"level":"info","message":"hook_data","timestamp":"2015-01-12T07:16:28.217Z"}
{"level":"info","message":"body=null","timestamp":"2015-01-12T07:16:28.218Z"}
{"level":"info","message":"mail_from=myemail@hostname.com","timestamp":"2015-01-12T07:16:28.218Z"}如您所见,主体包含一个空值。
发布于 2015-05-14 08:57:14
您可以使用以下代码检索电子邮件正文
connection.transaction.body.body_text_encoded
connection.transaction.body.bodytext它的代码很容易理解。你可以按照你的想法去读和做。
发布于 2016-02-22 08:04:37
对我来说这起作用了
connection.transaction.body.children[1].bodytextexports.hook_data = function (next, connection) {
connection.transaction.parse_body = true;
this.loginfo("connection.transaction.parse_body");
next();
}
exports.hook_data_post = function (next, connection) {
this.loginfo("connection.transaction.body.bodytext");
this.loginfo(connection.transaction.body.children[1].bodytext);
next();
}发布于 2016-01-01 15:38:22
似乎需要在数据到达之前设置transaction.parse_body --在“数据”钩子(在data命令下调用)中也是如此,或者更早:
exports.hook_data = function (next, connection) {
connection.transaction.parse_body = true;
next();
}然后,您可以从'data_post‘(在数据结束标记处调用)挂钩读取主体:
exports.hook_data_post = function (next, connection) {
this.loginfo(connection.transaction.body.bodytext);
next();
}https://stackoverflow.com/questions/27897112
复制相似问题