Skip to content

Commit 9d7a2b7

Browse files
committed
Merge branch 'master' of github.com:nodemailer/mailparser
2 parents 4a15157 + 4e9b1c8 commit 9d7a2b7

5 files changed

+41
-3
lines changed

CHANGELOG.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Changelog
22

3+
## [3.7.0](https://github.com/nodemailer/mailparser/compare/v3.6.9...v3.7.0) (2024-04-01)
4+
5+
6+
### Features
7+
8+
* **events:** Emit a new headerLines event to gain access the raw headers ([#364](https://github.com/nodemailer/mailparser/issues/364)) ([d33d7ec](https://github.com/nodemailer/mailparser/commit/d33d7ec4b8e32a4eb7a9a664cec5fdb545c274af))
9+
310
## [3.6.9](https://github.com/nodemailer/mailparser/compare/v3.6.8...v3.6.9) (2024-02-29)
411

512

lib/mail-parser.js

+4
Original file line numberDiff line numberDiff line change
@@ -797,6 +797,10 @@ class MailParser extends Transform {
797797
}
798798
});
799799
this.emit('headers', node.headers);
800+
801+
if (node.headerLines) {
802+
this.emit('headerLines', node.headerLines);
803+
}
800804
}
801805

802806
if (data.contentType === 'message/rfc822' && data.messageNode) {

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mailparser",
3-
"version": "3.6.9",
3+
"version": "3.7.0",
44
"description": "Parse e-mails",
55
"main": "index.js",
66
"scripts": {

test/mail-parser-test.js

+27
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,33 @@ exports['General tests'] = {
141141
});
142142
},
143143

144+
'HeaderLines event': test => {
145+
let encodedText = 'X-Test: =?UTF-8?Q?=C3=95=C3=84?= =?UTF-8?Q?=C3=96=C3=9C?=\r\n' + 'Subject: ABCDEF',
146+
mail = Buffer.from(encodedText, 'utf-8');
147+
148+
test.expect(3);
149+
let mailparser = new MailParser();
150+
151+
mailparser.on('headerLines', headerLines => {
152+
test.equal(!!headerLines.find(({ line }) => line === 'X-Test: =?UTF-8?Q?=C3=95=C3=84?= =?UTF-8?Q?=C3=96=C3=9C?='), true);
153+
test.equal(!!headerLines.find(({ line }) => line === 'Subject: ABCDEF'), true);
154+
});
155+
156+
mailparser.end(mail);
157+
mailparser.on('data', data => {
158+
if (data && data.release) {
159+
data.content.on('data', () => false);
160+
data.content.on('end', () => false);
161+
data.release();
162+
}
163+
});
164+
165+
mailparser.on('end', () => {
166+
test.ok(1, 'Parsing ended');
167+
test.done();
168+
});
169+
},
170+
144171
'No priority': test => {
145172
let encodedText = 'Content-type: text/plain; charset=utf-8\r\nSubject: ÕÄÖÜ\n\r\n1234',
146173
mail = Buffer.from(encodedText, 'utf-8');

0 commit comments

Comments
 (0)