Я пытаюсь написать настраиваемый плагин для haraka для сервера smtp с поддержкой nodejs. Я хочу добавить текст в почтовый ящик. вот мой код до сих пор.Haraka Smtp Server (Редактирование исходящего содержимого EMail Body)
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>
New Body Log:
[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, и я могу видеть отредактированный результат. но на принимающей стороне я получаю старую электронную почту. Я делаю какую-то глупую ошибку, и я буду очень признателен, если дано направление.
Спасибо.