nodemailer 4.6.4 → 4.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,268 +1,286 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 4.6.8 2018-08-15
4
+
5
+ - Use first IP address from DNS resolution when using a proxy (Limbozz) [d4ca847c]
6
+ - Return raw email from SES transport (gabegorelick) [3aa08967]
7
+
8
+ ## 4.6.7 2018-06-15
9
+
10
+ - Added option `skipEncoding` to JSONTransport
11
+
12
+ ## 4.6.6 2018-06-10
13
+
14
+ - Fixes mime encoded-word compatibility issue with invalid clients like Zimbra
15
+
16
+ ## 4.6.5 2018-05-23
17
+
18
+ - Fixed broken DKIM stream in Node.js v10
19
+ - Updated error messages for SMTP responses to not include a newline
20
+
3
21
  ## 4.6.4 2018-03-31
4
22
 
5
- * Readded logo author link to README that was accidentally removed a while ago
23
+ - Readded logo author link to README that was accidentally removed a while ago
6
24
 
7
25
  ## 4.6.3 2018-03-13
8
26
 
9
- * Removed unneeded dependency
27
+ - Removed unneeded dependency
10
28
 
11
29
  ## 4.6.2 2018-03-06
12
30
 
13
- * When redirecting URL calls then do not include original POST content
31
+ - When redirecting URL calls then do not include original POST content
14
32
 
15
33
  ## 4.6.1 2018-03-06
16
34
 
17
- * Fixed Smtp connection freezing, when trying to send after close / quit (twawszczak) [73d3911c]
35
+ - Fixed Smtp connection freezing, when trying to send after close / quit (twawszczak) [73d3911c]
18
36
 
19
37
  ## 4.6.0 2018-02-22
20
38
 
21
- * Support socks module v2 in addition to v1 [e228bcb2]
22
- * Fixed invalid promise return value when using createTestAccount [5524e627]
23
- * Allow using local addresses [8f6fa35f]
39
+ - Support socks module v2 in addition to v1 [e228bcb2]
40
+ - Fixed invalid promise return value when using createTestAccount [5524e627]
41
+ - Allow using local addresses [8f6fa35f]
24
42
 
25
43
  ## 4.5.0 2018-02-21
26
44
 
27
- * Added new message transport option `normalizeHeaderKey(key)=>normalizedKey` for custom header formatting
45
+ - Added new message transport option `normalizeHeaderKey(key)=>normalizedKey` for custom header formatting
28
46
 
29
47
  ## 4.4.2 2018-01-20
30
48
 
31
- * Added sponsors section to README
32
- * enclose encodeURIComponent in try..catch to handle invalid urls
49
+ - Added sponsors section to README
50
+ - enclose encodeURIComponent in try..catch to handle invalid urls
33
51
 
34
52
  ## 4.4.1 2017-12-08
35
53
 
36
- * Better handling of unexpectedly dropping connections
54
+ - Better handling of unexpectedly dropping connections
37
55
 
38
56
  ## 4.4.0 2017-11-10
39
57
 
40
- * Changed default behavior for attachment option contentTransferEncoding. If it is unset then base64 encoding is used for the attachment. If it is set to false then previous default applies (base64 for most, 7bit for text)
58
+ - Changed default behavior for attachment option contentTransferEncoding. If it is unset then base64 encoding is used for the attachment. If it is set to false then previous default applies (base64 for most, 7bit for text)
41
59
 
42
60
  ## 4.3.1 2017-10-25
43
61
 
44
- * Fixed a confict with Electron.js where timers do not have unref method
62
+ - Fixed a confict with Electron.js where timers do not have unref method
45
63
 
46
64
  ## 4.3.0 2017-10-23
47
65
 
48
- * Added new mail object method `mail.normalize(cb)` that should make creating HTTP API based transports much easier
66
+ - Added new mail object method `mail.normalize(cb)` that should make creating HTTP API based transports much easier
49
67
 
50
68
  ## 4.2.0 2017-10-13
51
69
 
52
- * Expose streamed messages size and timers in info response
70
+ - Expose streamed messages size and timers in info response
53
71
 
54
72
  ## v4.1.3 2017-10-06
55
73
 
56
- * Allow generating preview links without calling createTestAccount first
74
+ - Allow generating preview links without calling createTestAccount first
57
75
 
58
76
  ## v4.1.2 2017-10-03
59
77
 
60
- * No actual changes. Needed to push updated README to npmjs
78
+ - No actual changes. Needed to push updated README to npmjs
61
79
 
62
80
  ## v4.1.1 2017-09-25
63
81
 
64
- * Fixed JSONTransport attachment handling
82
+ - Fixed JSONTransport attachment handling
65
83
 
66
84
  ## v4.1.0 2017-08-28
67
85
 
68
- * Added new methods `createTestAccount` and `getTestMessageUrl` to use autogenerated email accounts from https://Ethereal.email
86
+ - Added new methods `createTestAccount` and `getTestMessageUrl` to use autogenerated email accounts from https://Ethereal.email
69
87
 
70
88
  ## v4.0.1 2017-04-13
71
89
 
72
- * Fixed issue with LMTP and STARTTLS
90
+ - Fixed issue with LMTP and STARTTLS
73
91
 
74
92
  ## v4.0.0 2017-04-06
75
93
 
76
- * License changed from EUPLv1.1 to MIT
94
+ - License changed from EUPLv1.1 to MIT
77
95
 
78
96
  ## v3.1.8 2017-03-21
79
97
 
80
- * Fixed invalid List-\* header generation
98
+ - Fixed invalid List-\* header generation
81
99
 
82
100
  ## v3.1.7 2017-03-14
83
101
 
84
- * Emit an error if STARTTLS ends with connection being closed
102
+ - Emit an error if STARTTLS ends with connection being closed
85
103
 
86
104
  ## v3.1.6 2017-03-14
87
105
 
88
- * Expose last server response for smtpConnection
106
+ - Expose last server response for smtpConnection
89
107
 
90
108
  ## v3.1.5 2017-03-08
91
109
 
92
- * Fixed SES transport, added missing `response` value
110
+ - Fixed SES transport, added missing `response` value
93
111
 
94
112
  ## v3.1.4 2017-02-26
95
113
 
96
- * Fixed DKIM calculation for empty body
97
- * Ensure linebreak after message content. This fixes DKIM signatures for non-multipart messages where input did not end with a newline
114
+ - Fixed DKIM calculation for empty body
115
+ - Ensure linebreak after message content. This fixes DKIM signatures for non-multipart messages where input did not end with a newline
98
116
 
99
117
  ## v3.1.3 2017-02-17
100
118
 
101
- * Fixed missing `transport.verify()` methods for SES transport
119
+ - Fixed missing `transport.verify()` methods for SES transport
102
120
 
103
121
  ## v3.1.2 2017-02-17
104
122
 
105
- * Added missing error handlers for Sendmail, SES and Stream transports. If a messages contained an invalid URL as attachment then these transports threw an uncatched error
123
+ - Added missing error handlers for Sendmail, SES and Stream transports. If a messages contained an invalid URL as attachment then these transports threw an uncatched error
106
124
 
107
125
  ## v3.1.1 2017-02-13
108
126
 
109
- * Fixed missing `transport.on('idle')` and `transport.isIdle()` methods for SES transports
127
+ - Fixed missing `transport.on('idle')` and `transport.isIdle()` methods for SES transports
110
128
 
111
129
  ## v3.1.0 2017-02-13
112
130
 
113
- * Added built-in transport for AWS SES. [Docs](http://localhost:1313/transports/ses/)
114
- * Updated stream transport to allow building JSON strings. [Docs](http://localhost:1313/transports/stream/#json-transport)
115
- * Added new method _mail.resolveAll_ that fetches all attachments and such to be able to more easily build API-based transports
131
+ - Added built-in transport for AWS SES. [Docs](http://localhost:1313/transports/ses/)
132
+ - Updated stream transport to allow building JSON strings. [Docs](http://localhost:1313/transports/stream/#json-transport)
133
+ - Added new method _mail.resolveAll_ that fetches all attachments and such to be able to more easily build API-based transports
116
134
 
117
135
  ## v3.0.2 2017-02-04
118
136
 
119
- * Fixed a bug with OAuth2 login where error callback was fired twice if getToken was not available.
137
+ - Fixed a bug with OAuth2 login where error callback was fired twice if getToken was not available.
120
138
 
121
139
  ## v3.0.1 2017-02-03
122
140
 
123
- * Fixed a bug where Nodemailer threw an exception if `disableFileAccess` option was used
124
- * Added FLOSS [exception declaration](FLOSS_EXCEPTIONS.md)
141
+ - Fixed a bug where Nodemailer threw an exception if `disableFileAccess` option was used
142
+ - Added FLOSS [exception declaration](FLOSS_EXCEPTIONS.md)
125
143
 
126
144
  ## v3.0.0 2017-01-31
127
145
 
128
- * Initial version of Nodemailer 3
146
+ - Initial version of Nodemailer 3
129
147
 
130
148
  This update brings a lot of breaking changes:
131
149
 
132
- * License changed from MIT to **EUPL-1.1**. This was possible as the new version of Nodemailer is a major rewrite. The features I don't have ownership for, were removed or reimplemented. If there's still some snippets in the code that have vague ownership then notify <mailto:andris@kreata.ee> about the conflicting code and I'll fix it.
133
- * Requires **Node.js v6+**
134
- * All **templating is gone**. It was too confusing to use and to be really universal a huge list of different renderers would be required. Nodemailer is about email, not about parsing different template syntaxes
135
- * **No NTLM authentication**. It was too difficult to re-implement. If you still need it then it would be possible to introduce a pluggable SASL interface where you could load the NTLM module in your own code and pass it to Nodemailer. Currently this is not possible.
136
- * **OAuth2 authentication** is built in and has a different [configuration](https://nodemailer.com/smtp/oauth2/). You can use both user (3LO) and service (2LO) accounts to generate access tokens from Nodemailer. Additionally there's a new feature to authenticate differently for every message – useful if your application sends on behalf of different users instead of a single sender.
137
- * **Improved Calendaring**. Provide an ical file to Nodemailer to send out [calendar events](https://nodemailer.com/message/calendar-events/).
150
+ - License changed from MIT to **EUPL-1.1**. This was possible as the new version of Nodemailer is a major rewrite. The features I don't have ownership for, were removed or reimplemented. If there's still some snippets in the code that have vague ownership then notify <mailto:andris@kreata.ee> about the conflicting code and I'll fix it.
151
+ - Requires **Node.js v6+**
152
+ - All **templating is gone**. It was too confusing to use and to be really universal a huge list of different renderers would be required. Nodemailer is about email, not about parsing different template syntaxes
153
+ - **No NTLM authentication**. It was too difficult to re-implement. If you still need it then it would be possible to introduce a pluggable SASL interface where you could load the NTLM module in your own code and pass it to Nodemailer. Currently this is not possible.
154
+ - **OAuth2 authentication** is built in and has a different [configuration](https://nodemailer.com/smtp/oauth2/). You can use both user (3LO) and service (2LO) accounts to generate access tokens from Nodemailer. Additionally there's a new feature to authenticate differently for every message – useful if your application sends on behalf of different users instead of a single sender.
155
+ - **Improved Calendaring**. Provide an ical file to Nodemailer to send out [calendar events](https://nodemailer.com/message/calendar-events/).
138
156
 
139
157
  And also some non-breaking changes:
140
158
 
141
- * All **dependencies were dropped**. There is exactly 0 dependencies needed to use Nodemailer. This brings the installation time of Nodemailer from NPM down to less than 2 seconds
142
- * **Delivery status notifications** added to Nodemailer
143
- * Improved and built-in **DKIM** signing of messages. Previously you needed an external module for this and it did quite a lousy job with larger messages
144
- * **Stream transport** to return a RFC822 formatted message as a stream. Useful if you want to use Nodemailer as a preprocessor and not for actual delivery.
145
- * **Sendmail** transport built-in, no need for external transport plugin
159
+ - All **dependencies were dropped**. There is exactly 0 dependencies needed to use Nodemailer. This brings the installation time of Nodemailer from NPM down to less than 2 seconds
160
+ - **Delivery status notifications** added to Nodemailer
161
+ - Improved and built-in **DKIM** signing of messages. Previously you needed an external module for this and it did quite a lousy job with larger messages
162
+ - **Stream transport** to return a RFC822 formatted message as a stream. Useful if you want to use Nodemailer as a preprocessor and not for actual delivery.
163
+ - **Sendmail** transport built-in, no need for external transport plugin
146
164
 
147
165
  See [Nodemailer.com](https://nodemailer.com/) for full documentation
148
166
 
149
167
  ## 2.7.0 2016-12-08
150
168
 
151
- * Bumped mailcomposer that generates encoded-words differently which might break some tests
169
+ - Bumped mailcomposer that generates encoded-words differently which might break some tests
152
170
 
153
171
  ## 2.6.0 2016-09-05
154
172
 
155
- * Added new options disableFileAccess and disableUrlAccess
156
- * Fixed envelope handling where cc/bcc fields were ignored in the envelope object
173
+ - Added new options disableFileAccess and disableUrlAccess
174
+ - Fixed envelope handling where cc/bcc fields were ignored in the envelope object
157
175
 
158
176
  ## 2.4.2 2016-05-25
159
177
 
160
- * Removed shrinkwrap file. Seemed to cause more trouble than help
178
+ - Removed shrinkwrap file. Seemed to cause more trouble than help
161
179
 
162
180
  ## 2.4.1 2016-05-12
163
181
 
164
- * Fixed outdated shrinkwrap file
182
+ - Fixed outdated shrinkwrap file
165
183
 
166
184
  ## 2.4.0 2016-05-11
167
185
 
168
- * Bumped mailcomposer module to allow using `false` as attachment filename (suppresses filename usage)
169
- * Added NTLM authentication support
186
+ - Bumped mailcomposer module to allow using `false` as attachment filename (suppresses filename usage)
187
+ - Added NTLM authentication support
170
188
 
171
189
  ## 2.3.2 2016-04-11
172
190
 
173
- * Bumped smtp transport modules to get newest smtp-connection that fixes SMTPUTF8 support for internationalized email addresses
191
+ - Bumped smtp transport modules to get newest smtp-connection that fixes SMTPUTF8 support for internationalized email addresses
174
192
 
175
193
  ## 2.3.1 2016-04-08
176
194
 
177
- * Bumped mailcomposer to have better support for message/822 attachments
195
+ - Bumped mailcomposer to have better support for message/822 attachments
178
196
 
179
197
  ## 2.3.0 2016-03-03
180
198
 
181
- * Fixed a bug with attachment filename that contains mixed unicode and dashes
182
- * Added built-in support for proxies by providing a new SMTP option `proxy` that takes a proxy configuration url as its value
183
- * Added option `transport` to dynamically load transport plugins
184
- * Do not require globally installed grunt-cli
199
+ - Fixed a bug with attachment filename that contains mixed unicode and dashes
200
+ - Added built-in support for proxies by providing a new SMTP option `proxy` that takes a proxy configuration url as its value
201
+ - Added option `transport` to dynamically load transport plugins
202
+ - Do not require globally installed grunt-cli
185
203
 
186
204
  ## 2.2.1 2016-02-20
187
205
 
188
- * Fixed a bug in SMTP requireTLS option that was broken
206
+ - Fixed a bug in SMTP requireTLS option that was broken
189
207
 
190
208
  ## 2.2.0 2016-02-18
191
209
 
192
- * Removed the need to use `clone` dependency
193
- * Added new method `verify` to check SMTP configuration
194
- * Direct transport uses STARTTLS by default, fallbacks to plaintext if STARTTLS fails
195
- * Added new message option `list` for setting List-\* headers
196
- * Add simple proxy support with `getSocket` method
197
- * Added new message option `textEncoding`. If `textEncoding` is not set then detect best encoding automatically
198
- * Added new message option `icalEvent` to embed iCalendar events. Example [here](examples/ical-event.js)
199
- * Added new attachment option `raw` to use prepared MIME contents instead of generating a new one. This might be useful when you want to handcraft some parts of the message yourself, for example if you want to inject a PGP encrypted message as the contents of a MIME node
200
- * Added new message option `raw` to use an existing MIME message instead of generating a new one
210
+ - Removed the need to use `clone` dependency
211
+ - Added new method `verify` to check SMTP configuration
212
+ - Direct transport uses STARTTLS by default, fallbacks to plaintext if STARTTLS fails
213
+ - Added new message option `list` for setting List-\* headers
214
+ - Add simple proxy support with `getSocket` method
215
+ - Added new message option `textEncoding`. If `textEncoding` is not set then detect best encoding automatically
216
+ - Added new message option `icalEvent` to embed iCalendar events. Example [here](examples/ical-event.js)
217
+ - Added new attachment option `raw` to use prepared MIME contents instead of generating a new one. This might be useful when you want to handcraft some parts of the message yourself, for example if you want to inject a PGP encrypted message as the contents of a MIME node
218
+ - Added new message option `raw` to use an existing MIME message instead of generating a new one
201
219
 
202
220
  ## 2.1.0 2016-02-01
203
221
 
204
222
  Republishing 2.1.0-rc.1 as stable. To recap, here's the notable changes between v2.0 and v2.1:
205
223
 
206
- * Implemented templating support. You can either use a simple built-in renderer or some external advanced renderer, eg. [node-email-templates](https://github.com/niftylettuce/node-email-templates). Templating [docs](http://nodemailer.com/2-0-0-beta/templating/).
207
- * Updated smtp-pool to emit 'idle' events in order to handle message queue more effectively
208
- * Updated custom header handling, works everywhere the same now, no differences between adding custom headers to the message or to an attachment
224
+ - Implemented templating support. You can either use a simple built-in renderer or some external advanced renderer, eg. [node-email-templates](https://github.com/niftylettuce/node-email-templates). Templating [docs](http://nodemailer.com/2-0-0-beta/templating/).
225
+ - Updated smtp-pool to emit 'idle' events in order to handle message queue more effectively
226
+ - Updated custom header handling, works everywhere the same now, no differences between adding custom headers to the message or to an attachment
209
227
 
210
228
  ## 2.1.0-rc.1 2016-01-25
211
229
 
212
230
  Sneaked in some new features even though it is already rc
213
231
 
214
- * If a SMTP pool is closed while there are still messages in a queue, the message callbacks are invoked with an error
215
- * In case of SMTP pool the transporter emits 'idle' when there is a free connection slot available
216
- * Added method `isIdle()` that checks if a pool has still some free connection slots available
232
+ - If a SMTP pool is closed while there are still messages in a queue, the message callbacks are invoked with an error
233
+ - In case of SMTP pool the transporter emits 'idle' when there is a free connection slot available
234
+ - Added method `isIdle()` that checks if a pool has still some free connection slots available
217
235
 
218
236
  ## 2.1.0-rc.0 2016-01-20
219
237
 
220
- * Bumped dependency versions
238
+ - Bumped dependency versions
221
239
 
222
240
  ## 2.1.0-beta.3 2016-01-20
223
241
 
224
- * Added support for node-email-templates templating in addition to the built-in renderer
242
+ - Added support for node-email-templates templating in addition to the built-in renderer
225
243
 
226
244
  ## 2.1.0-beta.2 2016-01-20
227
245
 
228
- * Implemented simple templating feature
246
+ - Implemented simple templating feature
229
247
 
230
248
  ## 2.1.0-beta.1 2016-01-20
231
249
 
232
- * Allow using prepared header values that are not folded or encoded by Nodemailer
250
+ - Allow using prepared header values that are not folded or encoded by Nodemailer
233
251
 
234
252
  ## 2.1.0-beta.0 2016-01-20
235
253
 
236
- * Use the same header custom structure for message root, attachments and alternatives
237
- * Ensure that Message-Id exists when accessing message
238
- * Allow using array values for custom headers (inserts every value in its own row)
254
+ - Use the same header custom structure for message root, attachments and alternatives
255
+ - Ensure that Message-Id exists when accessing message
256
+ - Allow using array values for custom headers (inserts every value in its own row)
239
257
 
240
258
  ## 2.0.0 2016-01-11
241
259
 
242
- * Released rc.2 as stable
260
+ - Released rc.2 as stable
243
261
 
244
262
  ## 2.0.0-rc.2 2016-01-04
245
263
 
246
- * Locked dependencies
264
+ - Locked dependencies
247
265
 
248
266
  ## 2.0.0-beta.2 2016-01-04
249
267
 
250
- * Updated documentation to reflect changes with SMTP handling
251
- * Use beta versions for smtp/pool/direct transports
252
- * Updated logging
268
+ - Updated documentation to reflect changes with SMTP handling
269
+ - Use beta versions for smtp/pool/direct transports
270
+ - Updated logging
253
271
 
254
272
  ## 2.0.0-beta.1 2016-01-03
255
273
 
256
- * Use bunyan compatible logger instead of the emit('log') style
257
- * Outsourced some reusable methods to nodemailer-shared
258
- * Support setting direct/smtp/pool with the default configuration
274
+ - Use bunyan compatible logger instead of the emit('log') style
275
+ - Outsourced some reusable methods to nodemailer-shared
276
+ - Support setting direct/smtp/pool with the default configuration
259
277
 
260
278
  ## 2.0.0-beta.0 2015-12-31
261
279
 
262
- * Stream errors are not silently swallowed
263
- * Do not use format=flowed
264
- * Use nodemailer-fetch to fetch URL streams
265
- * jshint replaced by eslint
280
+ - Stream errors are not silently swallowed
281
+ - Do not use format=flowed
282
+ - Use nodemailer-fetch to fetch URL streams
283
+ - jshint replaced by eslint
266
284
 
267
285
  ## v1.11.0 2015-12-28
268
286
 
@@ -358,147 +376,147 @@ Total rewrite. See migration guide here: <http://www.andrisreinman.com/nodemaile
358
376
 
359
377
  ## v0.7.1 2014-07-09
360
378
 
361
- * Upgraded aws-sdk to 2.0.5
379
+ - Upgraded aws-sdk to 2.0.5
362
380
 
363
381
  ## v0.7.0 2014-06-17
364
382
 
365
- * Bumped version to v0.7.0
366
- * Fix AWS-SES usage [5b6bc144]
367
- * Replace current SES with new SES using AWS-SDK (Elanorr) [c79d797a]
368
- * Updated README.md about Node Email Templates (niftylettuce) [e52bef81]
383
+ - Bumped version to v0.7.0
384
+ - Fix AWS-SES usage [5b6bc144]
385
+ - Replace current SES with new SES using AWS-SDK (Elanorr) [c79d797a]
386
+ - Updated README.md about Node Email Templates (niftylettuce) [e52bef81]
369
387
 
370
388
  ## v0.6.5 2014-05-15
371
389
 
372
- * Bumped version to v0.6.5
373
- * Use tildes instead of carets for dependency listing [5296ce41]
374
- * Allow clients to set a custom identityString (venables) [5373287d]
375
- * bugfix (adding "-i" to sendmail command line for each new mail) by copying this.args (vrodic) [05a8a9a3]
376
- * update copyright (gdi2290) [3a6cba3a]
390
+ - Bumped version to v0.6.5
391
+ - Use tildes instead of carets for dependency listing [5296ce41]
392
+ - Allow clients to set a custom identityString (venables) [5373287d]
393
+ - bugfix (adding "-i" to sendmail command line for each new mail) by copying this.args (vrodic) [05a8a9a3]
394
+ - update copyright (gdi2290) [3a6cba3a]
377
395
 
378
396
  ## v0.6.4 2014-05-13
379
397
 
380
- * Bumped version to v0.6.4
381
- * added npmignore, bumped dependencies [21bddcd9]
382
- * Add AOL to well-known services (msouce) [da7dd3b7]
398
+ - Bumped version to v0.6.4
399
+ - added npmignore, bumped dependencies [21bddcd9]
400
+ - Add AOL to well-known services (msouce) [da7dd3b7]
383
401
 
384
402
  ## v0.6.3 2014-04-16
385
403
 
386
- * Bumped version to v0.6.3
387
- * Upgraded simplesmtp dependency [dd367f59]
404
+ - Bumped version to v0.6.3
405
+ - Upgraded simplesmtp dependency [dd367f59]
388
406
 
389
407
  ## v0.6.2 2014-04-09
390
408
 
391
- * Bumped version to v0.6.2
392
- * Added error option to Stub transport [c423acad]
393
- * Use SVG npm badge (t3chnoboy) [677117b7]
394
- * add SendCloud to well known services (haio) [43c358e0]
395
- * High-res build-passing and NPM module badges (sahat) [9fdc37cd]
409
+ - Bumped version to v0.6.2
410
+ - Added error option to Stub transport [c423acad]
411
+ - Use SVG npm badge (t3chnoboy) [677117b7]
412
+ - add SendCloud to well known services (haio) [43c358e0]
413
+ - High-res build-passing and NPM module badges (sahat) [9fdc37cd]
396
414
 
397
415
  ## v0.6.1 2014-01-26
398
416
 
399
- * Bumped version to v0.6.1
400
- * Do not throw on multiple errors from sendmail command [c6e2cd12]
401
- * Do not require callback for pickup, fixes #238 [93eb3214]
402
- * Added AWSSecurityToken information to README, fixes #235 [58e921d1]
403
- * Added Nodemailer logo [06b7d1a8]
417
+ - Bumped version to v0.6.1
418
+ - Do not throw on multiple errors from sendmail command [c6e2cd12]
419
+ - Do not require callback for pickup, fixes #238 [93eb3214]
420
+ - Added AWSSecurityToken information to README, fixes #235 [58e921d1]
421
+ - Added Nodemailer logo [06b7d1a8]
404
422
 
405
423
  ## v0.6.0 2013-12-30
406
424
 
407
- * Bumped version to v0.6.0
408
- * Allow defining custom transport methods [ec5b48ce]
409
- * Return messageId with responseObject for all built in transport methods [74445cec]
410
- * Bumped dependency versions for mailcomposer and readable-stream [9a034c34]
411
- * Changed pickup argument name to 'directory' [01c3ea53]
412
- * Added support for IIS pickup directory with PICKUP transport (philipproplesch) [36940b59..360a2878]
413
- * Applied common styles [9e93a409]
414
- * Updated readme [c78075e7]
425
+ - Bumped version to v0.6.0
426
+ - Allow defining custom transport methods [ec5b48ce]
427
+ - Return messageId with responseObject for all built in transport methods [74445cec]
428
+ - Bumped dependency versions for mailcomposer and readable-stream [9a034c34]
429
+ - Changed pickup argument name to 'directory' [01c3ea53]
430
+ - Added support for IIS pickup directory with PICKUP transport (philipproplesch) [36940b59..360a2878]
431
+ - Applied common styles [9e93a409]
432
+ - Updated readme [c78075e7]
415
433
 
416
434
  ## v0.5.15 2013-12-13
417
435
 
418
- * bumped version to v0.5.15
419
- * Updated README, added global options info for setting uo transports [554bb0e5]
420
- * Resolve public hostname, if resolveHostname property for a transport object is set to `true` [9023a6e1..4c66b819]
436
+ - bumped version to v0.5.15
437
+ - Updated README, added global options info for setting uo transports [554bb0e5]
438
+ - Resolve public hostname, if resolveHostname property for a transport object is set to `true` [9023a6e1..4c66b819]
421
439
 
422
440
  ## v0.5.14 2013-12-05
423
441
 
424
- * bumped version to v0.5.14
425
- * Expose status for direct messages [f0312df6]
426
- * Allow to skip the X-Mailer header if xMailer value is set to 'false' [f2c20a68]
442
+ - bumped version to v0.5.14
443
+ - Expose status for direct messages [f0312df6]
444
+ - Allow to skip the X-Mailer header if xMailer value is set to 'false' [f2c20a68]
427
445
 
428
446
  ## v0.5.13 2013-12-03
429
447
 
430
- * bumped version to v0.5.13
431
- * Use the name property from the transport object to use for the domain part of message-id values (1598eee9)
448
+ - bumped version to v0.5.13
449
+ - Use the name property from the transport object to use for the domain part of message-id values (1598eee9)
432
450
 
433
451
  ## v0.5.12 2013-12-02
434
452
 
435
- * bumped version to v0.5.12
436
- * Expose transport method and transport module version if available [a495106e]
437
- * Added 'he' module instead of using custom html entity decoding [c197d102]
438
- * Added xMailer property for transport configuration object to override X-Mailer value [e8733a61]
439
- * Updated README, added description for 'mail' method [e1f5f3a6]
453
+ - bumped version to v0.5.12
454
+ - Expose transport method and transport module version if available [a495106e]
455
+ - Added 'he' module instead of using custom html entity decoding [c197d102]
456
+ - Added xMailer property for transport configuration object to override X-Mailer value [e8733a61]
457
+ - Updated README, added description for 'mail' method [e1f5f3a6]
440
458
 
441
459
  ## v0.5.11 2013-11-28
442
460
 
443
- * bumped version to v0.5.11
444
- * Updated mailcomposer version. Replaces ent with he [6a45b790e]
461
+ - bumped version to v0.5.11
462
+ - Updated mailcomposer version. Replaces ent with he [6a45b790e]
445
463
 
446
464
  ## v0.5.10 2013-11-26
447
465
 
448
- * bumped version to v0.5.10
449
- * added shorthand function mail() for direct transport type [88129bd7]
450
- * minor tweaks and typo fixes [f797409e..ceac0ca4]
466
+ - bumped version to v0.5.10
467
+ - added shorthand function mail() for direct transport type [88129bd7]
468
+ - minor tweaks and typo fixes [f797409e..ceac0ca4]
451
469
 
452
470
  ## v0.5.9 2013-11-25
453
471
 
454
- * bumped version to v0.5.9
455
- * Update for 'direct' handling [77b84e2f]
456
- * do not require callback to be provided for 'direct' type [ec51c79f]
472
+ - bumped version to v0.5.9
473
+ - Update for 'direct' handling [77b84e2f]
474
+ - do not require callback to be provided for 'direct' type [ec51c79f]
457
475
 
458
476
  ## v0.5.8 2013-11-22
459
477
 
460
- * bumped version to v0.5.8
461
- * Added support for 'direct' transport [826f226d..0dbbcbbc]
478
+ - bumped version to v0.5.8
479
+ - Added support for 'direct' transport [826f226d..0dbbcbbc]
462
480
 
463
481
  ## v0.5.7 2013-11-18
464
482
 
465
- * bumped version to v0.5.7
466
- * Replace \r\n by \n in Sendmail transport (rolftimmermans) [fed2089e..616ec90c] A lot of sendmail implementations choke on \r\n newlines and require \n This commit addresses this by transforming all \r\n sequences passed to the sendmail command with \n
483
+ - bumped version to v0.5.7
484
+ - Replace \r\n by \n in Sendmail transport (rolftimmermans) [fed2089e..616ec90c] A lot of sendmail implementations choke on \r\n newlines and require \n This commit addresses this by transforming all \r\n sequences passed to the sendmail command with \n
467
485
 
468
486
  ## v0.5.6 2013-11-15
469
487
 
470
- * bumped version to v0.5.6
471
- * Upgraded mailcomposer dependency to 0.2.4 [e5ff9c40]
472
- * Removed noCR option [e810d1b8]
473
- * Update wellknown.js, added FastMail (k-j-kleist) [cf930f6d]
488
+ - bumped version to v0.5.6
489
+ - Upgraded mailcomposer dependency to 0.2.4 [e5ff9c40]
490
+ - Removed noCR option [e810d1b8]
491
+ - Update wellknown.js, added FastMail (k-j-kleist) [cf930f6d]
474
492
 
475
493
  ## v0.5.5 2013-10-30
476
494
 
477
- * bumped version to v0.5.5
478
- * Updated mailcomposer dependnecy version to 0.2.3
479
- * Remove legacy code - node v0.4 is not supported anymore anyway
480
- * Use hostname (autodetected or from the options.name property) for Message-Id instead of "Nodemailer" (helps a bit when messages are identified as spam)
481
- * Added maxMessages info to README
495
+ - bumped version to v0.5.5
496
+ - Updated mailcomposer dependnecy version to 0.2.3
497
+ - Remove legacy code - node v0.4 is not supported anymore anyway
498
+ - Use hostname (autodetected or from the options.name property) for Message-Id instead of "Nodemailer" (helps a bit when messages are identified as spam)
499
+ - Added maxMessages info to README
482
500
 
483
501
  ## v0.5.4 2013-10-29
484
502
 
485
- * bumped version to v0.5.4
486
- * added "use strict" statements
487
- * Added DSN info to README
488
- * add support for QQ enterprise email (coderhaoxin)
489
- * Add a Bitdeli Badge to README
490
- * DSN options Passthrought into simplesmtp. (irvinzz)
503
+ - bumped version to v0.5.4
504
+ - added "use strict" statements
505
+ - Added DSN info to README
506
+ - add support for QQ enterprise email (coderhaoxin)
507
+ - Add a Bitdeli Badge to README
508
+ - DSN options Passthrought into simplesmtp. (irvinzz)
491
509
 
492
510
  ## v0.5.3 2013-10-03
493
511
 
494
- * bumped version v0.5.3
495
- * Using a stub transport to prevent sendmail from being called during a test. (jsdevel)
496
- * closes #78: sendmail transport does not work correctly on Unix machines. (jsdevel)
497
- * Updated PaaS Support list to include Modulus. (fiveisprime)
498
- * Translate self closing break tags to newline (kosmasgiannis)
499
- * fix typos (aeosynth)
512
+ - bumped version v0.5.3
513
+ - Using a stub transport to prevent sendmail from being called during a test. (jsdevel)
514
+ - closes #78: sendmail transport does not work correctly on Unix machines. (jsdevel)
515
+ - Updated PaaS Support list to include Modulus. (fiveisprime)
516
+ - Translate self closing break tags to newline (kosmasgiannis)
517
+ - fix typos (aeosynth)
500
518
 
501
519
  ## v0.5.2 2013-07-25
502
520
 
503
- * bumped version v0.5.2
504
- * Merge pull request #177 from MrSwitch/master Fixing Amazon SES, fatal error caused by bad connection
521
+ - bumped version v0.5.2
522
+ - Merge pull request #177 from MrSwitch/master Fixing Amazon SES, fatal error caused by bad connection
package/lib/dkim/index.js CHANGED
@@ -152,6 +152,7 @@ class DKIMSigner {
152
152
  this.cache.once('close', () => {
153
153
  this.sendSignedOutput();
154
154
  });
155
+ this.relaxedBody.removeAllListeners('readable');
155
156
  this.relaxedBody.pipe(this.cache);
156
157
  }
157
158
 
@@ -131,7 +131,6 @@ class RelaxedBody extends Transform {
131
131
 
132
132
  this.byteLength += chunk.length;
133
133
  this.push(chunk);
134
-
135
134
  callback();
136
135
  }
137
136
 
@@ -146,6 +145,7 @@ class RelaxedBody extends Transform {
146
145
  this.push(Buffer.from('\r\n'));
147
146
  // this.bodyHash.update(Buffer.from('\r\n'));
148
147
  }
148
+
149
149
  this.emit('hash', this.bodyHash.digest('base64'), this.debug ? Buffer.concat(this._debugBody) : false);
150
150
  callback();
151
151
  }
@@ -4,16 +4,10 @@ const packageData = require('../../package.json');
4
4
  const shared = require('../shared');
5
5
 
6
6
  /**
7
- * Generates a Transport object for Sendmail
8
- *
9
- * Possible options can be the following:
10
- *
11
- * * **path** optional path to sendmail binary
12
- * * **newline** either 'windows' or 'unix'
13
- * * **args** an array of arguments for the sendmail binary
7
+ * Generates a Transport object to generate JSON output
14
8
  *
15
9
  * @constructor
16
- * @param {Object} optional config parameter for the AWS Sendmail service
10
+ * @param {Object} optional config parameter
17
11
  */
18
12
  class JSONTransport {
19
13
  constructor(options) {
@@ -78,7 +72,7 @@ class JSONTransport {
78
72
  return done(null, {
79
73
  envelope,
80
74
  messageId,
81
- message: JSON.stringify(data)
75
+ message: this.options.skipEncoding ? data : JSON.stringify(data)
82
76
  });
83
77
  });
84
78
  });
@@ -123,6 +123,8 @@ class Mail extends EventEmitter {
123
123
  } else {
124
124
  this._userPlugins[step].push(plugin);
125
125
  }
126
+
127
+ return this;
126
128
  }
127
129
 
128
130
  /**
@@ -372,7 +374,7 @@ class Mail extends EventEmitter {
372
374
  if (err) {
373
375
  return callback(err);
374
376
  }
375
- connect(address);
377
+ connect(Array.isArray(address) ? address[0] : address);
376
378
  });
377
379
  }
378
380
  }
@@ -123,9 +123,10 @@ module.exports = {
123
123
  * @param {String} value String to be encoded
124
124
  * @param {String} mimeWordEncoding='Q' Encoding for the mime word, either Q or B
125
125
  * @param {Number} [maxLength=0] If set, split mime words into several chunks if needed
126
+ * @param {Boolean} [encodeAll=false] If true and the value needs encoding then encodes entire string, not just the smallest match
126
127
  * @return {String} String with possible mime words
127
128
  */
128
- encodeWords(value, mimeWordEncoding, maxLength) {
129
+ encodeWords(value, mimeWordEncoding, maxLength, encodeAll) {
129
130
  maxLength = maxLength || 0;
130
131
 
131
132
  let encodedValue;
@@ -136,6 +137,12 @@ module.exports = {
136
137
  return value;
137
138
  }
138
139
 
140
+ if (encodeAll) {
141
+ // if it is requested to encode everything or the string contains something that resebles encoded word, then encode everything
142
+
143
+ return this.encodeWord(value, mimeWordEncoding, maxLength);
144
+ }
145
+
139
146
  // find the last word with a non-printable ascii in it
140
147
  let lastMatch = value.match(/([\u0080-\uFFFF][^\s]*)[^\u0080-\uFFFF]*$/);
141
148
  if (!lastMatch) {
@@ -1187,7 +1187,10 @@ class MimeNode {
1187
1187
  * @returns {String} Mime word encoded string if needed
1188
1188
  */
1189
1189
  _encodeWords(value) {
1190
- return mimeFuncs.encodeWords(value, this._getTextEncoding(value), 52);
1190
+ // set encodeAll parameter to true even though it is against the recommendation of RFC2047,
1191
+ // by default only words that include non-ascii should be converted into encoded words
1192
+ // but some clients (eg. Zimbra) do not handle it properly and remove surrounding whitespace
1193
+ return mimeFuncs.encodeWords(value, this._getTextEncoding(value), 52, true);
1191
1194
  }
1192
1195
 
1193
1196
  /**
package/lib/nodemailer.js CHANGED
@@ -11,8 +11,14 @@ const SESTransport = require('./ses-transport');
11
11
  const fetch = require('./fetch');
12
12
  const packageData = require('../package.json');
13
13
 
14
- const ETHEREAL_API = 'https://api.nodemailer.com';
15
- const ETHEREAL_WEB = 'https://ethereal.email';
14
+ const ETHEREAL_API = (process.env.ETHEREAL_API || 'https://api.nodemailer.com').replace(/\/+$/, '');
15
+ const ETHEREAL_WEB = (process.env.ETHEREAL_WEB || 'https://ethereal.email').replace(/\/+$/, '');
16
+ const ETHEREAL_CACHE = ['true', 'yes', 'y', '1'].includes(
17
+ (process.env.ETHEREAL_CACHE || 'yes')
18
+ .toString()
19
+ .trim()
20
+ .toLowerCase()
21
+ );
16
22
 
17
23
  let testAccount = false;
18
24
 
@@ -68,7 +74,7 @@ module.exports.createTestAccount = function(apiUrl, callback) {
68
74
  });
69
75
  }
70
76
 
71
- if (testAccount) {
77
+ if (ETHEREAL_CACHE && testAccount) {
72
78
  setImmediate(() => callback(null, testAccount));
73
79
  return promise;
74
80
  }
@@ -16,7 +16,7 @@ const shared = require('../shared');
16
16
  * * **args** an array of arguments for the sendmail binary
17
17
  *
18
18
  * @constructor
19
- * @param {Object} optional config parameter for the AWS Sendmail service
19
+ * @param {Object} optional config parameter for Sendmail
20
20
  */
21
21
  class SendmailTransport {
22
22
  constructor(options) {
@@ -6,15 +6,15 @@ const shared = require('../shared');
6
6
  const LeWindows = require('../sendmail-transport/le-windows');
7
7
 
8
8
  /**
9
- * Generates a Transport object for Sendmail
9
+ * Generates a Transport object for AWS SES
10
10
  *
11
11
  * Possible options can be the following:
12
12
  *
13
- * * **path** optional path to sendmail binary
14
- * * **args** an array of arguments for the sendmail binary
13
+ * * **sendingRate** optional Number specifying how many messages per second should be delivered to SES
14
+ * * **maxConnections** optional Number specifying max number of parallel connections to SES
15
15
  *
16
16
  * @constructor
17
- * @param {Object} optional config parameter for the AWS Sendmail service
17
+ * @param {Object} optional config parameter
18
18
  */
19
19
  class SESTransport extends EventEmitter {
20
20
  constructor(options) {
@@ -266,7 +266,8 @@ class SESTransport extends EventEmitter {
266
266
  to: envelope.to
267
267
  },
268
268
  messageId: '<' + data.MessageId + (!/@/.test(data.MessageId) ? '@' + region + '.amazonses.com' : '') + '>',
269
- response: data.MessageId
269
+ response: data.MessageId,
270
+ raw
270
271
  });
271
272
  });
272
273
  })
@@ -463,7 +463,7 @@ class SMTPConnection extends EventEmitter {
463
463
  this._sendCommand('RSET');
464
464
  this._responseActions.push(str => {
465
465
  if (str.charAt(0) !== '2') {
466
- return callback(this._formatError('Could not reset session state:\n' + str, 'EPROTOCOL', str, 'RSET'));
466
+ return callback(this._formatError('Could not reset session state. response=' + str, 'EPROTOCOL', str, 'RSET'));
467
467
  }
468
468
  this._envelope = false;
469
469
  return callback(null, true);
@@ -1016,7 +1016,7 @@ class SMTPConnection extends EventEmitter {
1016
1016
  clearTimeout(this._greetingTimeout);
1017
1017
 
1018
1018
  if (str.substr(0, 3) !== '220') {
1019
- this._onError(new Error('Invalid greeting from server:\n' + str), 'EPROTOCOL', str, 'CONN');
1019
+ this._onError(new Error('Invalid greeting. response=' + str), 'EPROTOCOL', str, 'CONN');
1020
1020
  return;
1021
1021
  }
1022
1022
 
@@ -1037,7 +1037,7 @@ class SMTPConnection extends EventEmitter {
1037
1037
  */
1038
1038
  _actionLHLO(str) {
1039
1039
  if (str.charAt(0) !== '2') {
1040
- this._onError(new Error('Invalid response for LHLO:\n' + str), 'EPROTOCOL', str, 'LHLO');
1040
+ this._onError(new Error('Invalid LHLO. response=' + str), 'EPROTOCOL', str, 'LHLO');
1041
1041
  return;
1042
1042
  }
1043
1043
 
@@ -1056,13 +1056,13 @@ class SMTPConnection extends EventEmitter {
1056
1056
  let match;
1057
1057
 
1058
1058
  if (str.substr(0, 3) === '421') {
1059
- this._onError(new Error('Server terminates connection:\n' + str), 'ECONNECTION', str, 'EHLO');
1059
+ this._onError(new Error('Server terminates connection. response=' + str), 'ECONNECTION', str, 'EHLO');
1060
1060
  return;
1061
1061
  }
1062
1062
 
1063
1063
  if (str.charAt(0) !== '2') {
1064
1064
  if (this.options.requireTLS) {
1065
- this._onError(new Error('EHLO failed but HELO does not support required STARTTLS:\n' + str), 'ECONNECTION', str, 'EHLO');
1065
+ this._onError(new Error('EHLO failed but HELO does not support required STARTTLS. response=' + str), 'ECONNECTION', str, 'EHLO');
1066
1066
  return;
1067
1067
  }
1068
1068
 
@@ -1136,7 +1136,7 @@ class SMTPConnection extends EventEmitter {
1136
1136
  */
1137
1137
  _actionHELO(str) {
1138
1138
  if (str.charAt(0) !== '2') {
1139
- this._onError(new Error('Invalid response for EHLO/HELO:\n' + str), 'EPROTOCOL', str, 'HELO');
1139
+ this._onError(new Error('Invalid HELO. response=' + str), 'EPROTOCOL', str, 'HELO');
1140
1140
  return;
1141
1141
  }
1142
1142
 
@@ -14,9 +14,9 @@ const LeUnix = require('../sendmail-transport/le-unix');
14
14
  * * **newline** either 'windows' or 'unix'
15
15
  *
16
16
  * @constructor
17
- * @param {Object} optional config parameter for the AWS Sendmail service
17
+ * @param {Object} optional config parameter
18
18
  */
19
- class SendmailTransport {
19
+ class StreamTransport {
20
20
  constructor(options) {
21
21
  options = options || {};
22
22
 
@@ -139,4 +139,4 @@ class SendmailTransport {
139
139
  }
140
140
  }
141
141
 
142
- module.exports = SendmailTransport;
142
+ module.exports = StreamTransport;
@@ -25,7 +25,7 @@
25
25
 
26
26
  "FastMail": {
27
27
  "domains": ["fastmail.fm"],
28
- "host": "mail.messagingengine.com",
28
+ "host": "smtp.fastmail.com",
29
29
  "port": 465,
30
30
  "secure": true
31
31
  },
@@ -97,7 +97,8 @@
97
97
 
98
98
  "Mailgun": {
99
99
  "host": "smtp.mailgun.org",
100
- "port": 587
100
+ "port": 465,
101
+ "secure": true
101
102
  },
102
103
 
103
104
  "Mailjet": {
@@ -125,6 +126,12 @@
125
126
  "port": 587
126
127
  },
127
128
 
129
+ "One": {
130
+ "host": "send.one.com",
131
+ "port": 465,
132
+ "secure": true
133
+ },
134
+
128
135
  "OpenMailBox": {
129
136
  "aliases": ["OMB", "openmailbox.org"],
130
137
  "host": "smtp.openmailbox.org",
@@ -144,6 +151,12 @@
144
151
  "port": 2525
145
152
  },
146
153
 
154
+ "qiye.aliyun": {
155
+ "host": "smtp.mxhichina.com",
156
+ "port": "465",
157
+ "secure": true
158
+ },
159
+
147
160
  "QQ": {
148
161
  "domains": ["qq.com"],
149
162
  "host": "smtp.qq.com",
@@ -185,16 +198,19 @@
185
198
  "port": 465,
186
199
  "secure": true
187
200
  },
201
+
188
202
  "SES-US-EAST-1": {
189
203
  "host": "email-smtp.us-east-1.amazonaws.com",
190
204
  "port": 465,
191
205
  "secure": true
192
206
  },
207
+
193
208
  "SES-US-WEST-2": {
194
209
  "host": "email-smtp.us-west-2.amazonaws.com",
195
210
  "port": 465,
196
211
  "secure": true
197
212
  },
213
+
198
214
  "SES-EU-WEST-1": {
199
215
  "host": "email-smtp.eu-west-1.amazonaws.com",
200
216
  "port": 465,
@@ -209,6 +225,11 @@
209
225
  "secure": false
210
226
  },
211
227
 
228
+ "Tipimail": {
229
+ "host": "smtp.tipimail.com",
230
+ "port": 587
231
+ },
232
+
212
233
  "Yahoo": {
213
234
  "domains": ["yahoo.com"],
214
235
  "host": "smtp.mail.yahoo.com",
@@ -229,19 +250,16 @@
229
250
  "secure": true,
230
251
  "authMethod": "LOGIN"
231
252
  },
253
+
232
254
  "126": {
233
255
  "host": "smtp.126.com",
234
256
  "port": 465,
235
257
  "secure": true
236
258
  },
259
+
237
260
  "163": {
238
261
  "host": "smtp.163.com",
239
262
  "port": 465,
240
263
  "secure": true
241
- },
242
- "qiye.aliyun": {
243
- "host": "smtp.mxhichina.com",
244
- "port": "465",
245
- "secure": true
246
264
  }
247
265
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodemailer",
3
- "version": "4.6.4",
3
+ "version": "4.6.8",
4
4
  "description": "Easy as cake e-mail sending from your Node.js applications",
5
5
  "main": "lib/nodemailer.js",
6
6
  "scripts": {
@@ -10,7 +10,9 @@
10
10
  "type": "git",
11
11
  "url": "https://github.com/nodemailer/nodemailer.git"
12
12
  },
13
- "keywords": ["Nodemailer"],
13
+ "keywords": [
14
+ "Nodemailer"
15
+ ],
14
16
  "author": "Andris Reinman",
15
17
  "license": "MIT",
16
18
  "bugs": {
@@ -21,18 +23,18 @@
21
23
  "bunyan": "^1.8.12",
22
24
  "chai": "^4.1.2",
23
25
  "eslint-config-nodemailer": "^1.2.0",
24
- "grunt": "^1.0.2",
26
+ "grunt": "^1.0.3",
25
27
  "grunt-cli": "^1.2.0",
26
- "grunt-eslint": "^20.1.0",
28
+ "grunt-eslint": "^21.0.0",
27
29
  "grunt-mocha-test": "^0.13.3",
28
- "libbase64": "^1.0.2",
29
- "libmime": "^3.1.0",
30
+ "libbase64": "^1.0.3",
31
+ "libmime": "^4.0.1",
30
32
  "libqp": "^1.1.0",
31
- "mocha": "^5.0.5",
33
+ "mocha": "^5.2.0",
32
34
  "proxy": "^0.2.4",
33
35
  "proxy-test-server": "^1.0.0",
34
- "sinon": "^4.5.0",
35
- "smtp-server": "^3.4.2"
36
+ "sinon": "^6.1.5",
37
+ "smtp-server": "^3.4.6"
36
38
  },
37
39
  "engines": {
38
40
  "node": ">=6.0.0"