-
Notifications
You must be signed in to change notification settings - Fork 3
opendkim.header()
Christopher Mooney edited this page Feb 12, 2018
·
5 revisions
Handle a message header field. opendkim.header()
is called zero or more times between opendkim.sign()
or opendkim.verify()
and opendkim.eoh()
, once per message header field.
For more information:
http://www.opendkim.org/libopendkim/dkim_header.html
Type: Object
-
header
: The header field being input, including its name, value and separating colon (":") character. -
length
: length of the header value.
- On failure, an exception is thrown that indicates the cause of the problem.
- The value of
header
should not contain a trailingCRLF
as this will be added by the canonicalization code. However, aCRLF
may appear elsewhere in the value if, for example, the header field is meant to be wrapped. - A header field whose name includes a semi-colon cannot be used as it will produce a syntactically invalid signature. Such header fields cause this function to return
DKIM_STAT_SYNTAX
.
const OpenDKIM = require('node-opendkim');
async function verify(header, body) {
var opendkim = new OpenDKIM();
try {
await opendkim.verify({id: undefined});
await opendkim.header({
header: header,
length: header.length
});
await opendkim.eoh();
await opendkim.body({
body: body,
length: body.length
});
await opendkim.eom();
} catch (err) {
console.log(opendkim.sig_geterrorstr(opendkim.sig_geterror()));
console.log(err);
}
}
const OpenDKIM = require('node-opendkim');
function verify_sync(header, body) {
var opendkim = new OpenDKIM();
try {
opendkim.verify_sync({id: undefined});
opendkim.header_sync({
header: header,
length: header.length
});
opendkim.eoh_sync();
opendkim.body_sync({
body: body,
length: body.length
});
opendkim.eom_sync();
} catch (err) {
console.log(opendkim.sig_geterrorstr(opendkim.sig_geterror()));
console.log(err);
}
}
const OpenDKIM = require('node-opendkim');
function verify(opendkim, header, body, callback) {
opendkim.verify({id: undefined}, function (err, result) {
if (err) {
return callback(err, result);
}
var header_obj = {
header: header,
length: header.length
};
opendkim.header(header_obj, function (err, result) {
if (err) {
return callback(err, result);
}
opendkim.eoh(function (err, result) {
if (err) {
return callback(err, result);
}
var body_obj = {
body: body,
length: body.length
};
opendkim.body(body_obj, function (err, result) {
if (err) {
return callback(err, result);
}
opendkim.eom(function (err, result) {
if (err) {
return callback(err, result);
}
return callback(err, result);
});
});
});
});
}
var opendkim = new OpenDKIM();
verify(opendkim, header, body, function (err, result) {
if (err) {
return console.log(opendkim.sig_geterrorstr(opendkim.sig_geterror()));
}
// success
});