gpt4 book ai didi

javascript - Haraka Smtp 服务器(编辑出站电子邮件正文内容)

转载 作者:太空宇宙 更新时间:2023-11-04 00:39:20 25 4
gpt4 key购买 nike

我正在尝试为haraka编写一个自定义插件,这是一个由nodejs驱动的smtp服务器。我想向邮件正文添加一些文本。这是到目前为止我的代码。

var utils  = require('./utils');
var util = require('util');
exports.hook_data = function (next, connection)
{
connection.transaction.parse_body = true;
next();
}

exports.hook_data_post = function (next,connection)
{
var plugin = this ;
plugin.loginfo(connection.transaction.body.bodytext);
var pos =connection.transaction.body.bodytext.indexOf('\<\/body\>');
connection.transaction.body.bodytext = connection.transaction.body.bodytext.splice(pos-1, 0, '<p>add this paragraph to the existing body.</p> \r \n');

plugin.loginfo(connection.transaction.body.bodytext);

next();
}

String.prototype.splice = function(idx, rem, str)
{
return this.slice(0, idx) + str + this.slice(idx + Math.abs(rem));
};
exports.hook_queue_outbound = function(next,connection)
{
var plugin = this;
plugin.loginfo(connection.transaction.body.bodytext);
next();
}

当插件在这里运行时,它会打印到日志中。

旧 body 登录信息:

[INFO] [-] [add_some_data] <html>
<body>
olddata
<p>add this paragraph to the existing body.</p> \r
</body>
</html>

新的 body 日志:

[INFO] [-] [add_some_data] <html>
<body>
olddata
<p>add this paragraph to the existing body.</p> \r
</body>
</html>

我想知道的是为什么它不包含外发电子邮件中的数据。

如您所见,我什至尝试将消息正文记录在“hook_queue_outbound”(稍后调用 hook_post_data 的 Hook )中,我可以看到编辑后的结果。但在接收端我收到了旧电子邮件。我犯了一些愚蠢的错误,如果给我一个方向,我将非常感激。
谢谢。

最佳答案

好吧,伙计们,我很挣扎,但我终于做到了。以防其他人将来可能会发现它有帮助,所以我发布了我如何实现它。 haraka add_body_filter 有一个内置助手,我用过它..:)
干杯

exports.hook_data = function (next, connection) 
{
var plugin = this;
connection.transaction.parse_body = true;
connection.transaction.add_body_filter(/text\/(plain|html)/, function (ct, enc, buff)
{
var buf = buff.toString('utf-8');
var pos = buf.indexOf('\<\/body\>');
buf = buf.splice(pos-1, 0, '<p>add this paragraph to the existing body.</p>');
return new Buffer(buf);
});
next();
}

关于javascript - Haraka Smtp 服务器(编辑出站电子邮件正文内容),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37526567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com