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 +195 -177
- package/lib/dkim/index.js +1 -0
- package/lib/dkim/relaxed-body.js +1 -1
- package/lib/json-transport/index.js +3 -9
- package/lib/mailer/index.js +3 -1
- package/lib/mime-funcs/index.js +8 -1
- package/lib/mime-node/index.js +4 -1
- package/lib/nodemailer.js +9 -3
- package/lib/sendmail-transport/index.js +1 -1
- package/lib/ses-transport/index.js +6 -5
- package/lib/smtp-connection/index.js +6 -6
- package/lib/stream-transport/index.js +3 -3
- package/lib/well-known/services.json +25 -7
- package/package.json +11 -9
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
|
-
|
|
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
|
-
|
|
27
|
+
- Removed unneeded dependency
|
|
10
28
|
|
|
11
29
|
## 4.6.2 2018-03-06
|
|
12
30
|
|
|
13
|
-
|
|
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
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
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
|
-
|
|
32
|
-
|
|
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
|
-
|
|
54
|
+
- Better handling of unexpectedly dropping connections
|
|
37
55
|
|
|
38
56
|
## 4.4.0 2017-11-10
|
|
39
57
|
|
|
40
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
70
|
+
- Expose streamed messages size and timers in info response
|
|
53
71
|
|
|
54
72
|
## v4.1.3 2017-10-06
|
|
55
73
|
|
|
56
|
-
|
|
74
|
+
- Allow generating preview links without calling createTestAccount first
|
|
57
75
|
|
|
58
76
|
## v4.1.2 2017-10-03
|
|
59
77
|
|
|
60
|
-
|
|
78
|
+
- No actual changes. Needed to push updated README to npmjs
|
|
61
79
|
|
|
62
80
|
## v4.1.1 2017-09-25
|
|
63
81
|
|
|
64
|
-
|
|
82
|
+
- Fixed JSONTransport attachment handling
|
|
65
83
|
|
|
66
84
|
## v4.1.0 2017-08-28
|
|
67
85
|
|
|
68
|
-
|
|
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
|
-
|
|
90
|
+
- Fixed issue with LMTP and STARTTLS
|
|
73
91
|
|
|
74
92
|
## v4.0.0 2017-04-06
|
|
75
93
|
|
|
76
|
-
|
|
94
|
+
- License changed from EUPLv1.1 to MIT
|
|
77
95
|
|
|
78
96
|
## v3.1.8 2017-03-21
|
|
79
97
|
|
|
80
|
-
|
|
98
|
+
- Fixed invalid List-\* header generation
|
|
81
99
|
|
|
82
100
|
## v3.1.7 2017-03-14
|
|
83
101
|
|
|
84
|
-
|
|
102
|
+
- Emit an error if STARTTLS ends with connection being closed
|
|
85
103
|
|
|
86
104
|
## v3.1.6 2017-03-14
|
|
87
105
|
|
|
88
|
-
|
|
106
|
+
- Expose last server response for smtpConnection
|
|
89
107
|
|
|
90
108
|
## v3.1.5 2017-03-08
|
|
91
109
|
|
|
92
|
-
|
|
110
|
+
- Fixed SES transport, added missing `response` value
|
|
93
111
|
|
|
94
112
|
## v3.1.4 2017-02-26
|
|
95
113
|
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
|
|
119
|
+
- Fixed missing `transport.verify()` methods for SES transport
|
|
102
120
|
|
|
103
121
|
## v3.1.2 2017-02-17
|
|
104
122
|
|
|
105
|
-
|
|
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
|
-
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
-
|
|
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
|
-
|
|
124
|
-
|
|
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
|
-
|
|
146
|
+
- Initial version of Nodemailer 3
|
|
129
147
|
|
|
130
148
|
This update brings a lot of breaking changes:
|
|
131
149
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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
|
-
|
|
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
|
-
|
|
156
|
-
|
|
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
|
-
|
|
178
|
+
- Removed shrinkwrap file. Seemed to cause more trouble than help
|
|
161
179
|
|
|
162
180
|
## 2.4.1 2016-05-12
|
|
163
181
|
|
|
164
|
-
|
|
182
|
+
- Fixed outdated shrinkwrap file
|
|
165
183
|
|
|
166
184
|
## 2.4.0 2016-05-11
|
|
167
185
|
|
|
168
|
-
|
|
169
|
-
|
|
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
|
-
|
|
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
|
-
|
|
195
|
+
- Bumped mailcomposer to have better support for message/822 attachments
|
|
178
196
|
|
|
179
197
|
## 2.3.0 2016-03-03
|
|
180
198
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
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
|
-
|
|
206
|
+
- Fixed a bug in SMTP requireTLS option that was broken
|
|
189
207
|
|
|
190
208
|
## 2.2.0 2016-02-18
|
|
191
209
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
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
|
-
|
|
207
|
-
|
|
208
|
-
|
|
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
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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
|
-
|
|
238
|
+
- Bumped dependency versions
|
|
221
239
|
|
|
222
240
|
## 2.1.0-beta.3 2016-01-20
|
|
223
241
|
|
|
224
|
-
|
|
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
|
-
|
|
246
|
+
- Implemented simple templating feature
|
|
229
247
|
|
|
230
248
|
## 2.1.0-beta.1 2016-01-20
|
|
231
249
|
|
|
232
|
-
|
|
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
|
-
|
|
237
|
-
|
|
238
|
-
|
|
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
|
-
|
|
260
|
+
- Released rc.2 as stable
|
|
243
261
|
|
|
244
262
|
## 2.0.0-rc.2 2016-01-04
|
|
245
263
|
|
|
246
|
-
|
|
264
|
+
- Locked dependencies
|
|
247
265
|
|
|
248
266
|
## 2.0.0-beta.2 2016-01-04
|
|
249
267
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
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
|
-
|
|
257
|
-
|
|
258
|
-
|
|
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
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
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
|
-
|
|
379
|
+
- Upgraded aws-sdk to 2.0.5
|
|
362
380
|
|
|
363
381
|
## v0.7.0 2014-06-17
|
|
364
382
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
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
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
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
|
-
|
|
381
|
-
|
|
382
|
-
|
|
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
|
-
|
|
387
|
-
|
|
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
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
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
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
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
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
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
|
-
|
|
419
|
-
|
|
420
|
-
|
|
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
|
-
|
|
425
|
-
|
|
426
|
-
|
|
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
|
-
|
|
431
|
-
|
|
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
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
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
|
-
|
|
444
|
-
|
|
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
|
-
|
|
449
|
-
|
|
450
|
-
|
|
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
|
-
|
|
455
|
-
|
|
456
|
-
|
|
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
|
-
|
|
461
|
-
|
|
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
|
-
|
|
466
|
-
|
|
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
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
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
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
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
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
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
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
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
|
-
|
|
504
|
-
|
|
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
package/lib/dkim/relaxed-body.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
});
|
package/lib/mailer/index.js
CHANGED
|
@@ -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
|
}
|
package/lib/mime-funcs/index.js
CHANGED
|
@@ -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) {
|
package/lib/mime-node/index.js
CHANGED
|
@@ -1187,7 +1187,10 @@ class MimeNode {
|
|
|
1187
1187
|
* @returns {String} Mime word encoded string if needed
|
|
1188
1188
|
*/
|
|
1189
1189
|
_encodeWords(value) {
|
|
1190
|
-
|
|
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
|
|
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
|
|
9
|
+
* Generates a Transport object for AWS SES
|
|
10
10
|
*
|
|
11
11
|
* Possible options can be the following:
|
|
12
12
|
*
|
|
13
|
-
* * **
|
|
14
|
-
* * **
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
17
|
+
* @param {Object} optional config parameter
|
|
18
18
|
*/
|
|
19
|
-
class
|
|
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 =
|
|
142
|
+
module.exports = StreamTransport;
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
"FastMail": {
|
|
27
27
|
"domains": ["fastmail.fm"],
|
|
28
|
-
"host": "
|
|
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":
|
|
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.
|
|
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": [
|
|
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.
|
|
26
|
+
"grunt": "^1.0.3",
|
|
25
27
|
"grunt-cli": "^1.2.0",
|
|
26
|
-
"grunt-eslint": "^
|
|
28
|
+
"grunt-eslint": "^21.0.0",
|
|
27
29
|
"grunt-mocha-test": "^0.13.3",
|
|
28
|
-
"libbase64": "^1.0.
|
|
29
|
-
"libmime": "^
|
|
30
|
+
"libbase64": "^1.0.3",
|
|
31
|
+
"libmime": "^4.0.1",
|
|
30
32
|
"libqp": "^1.1.0",
|
|
31
|
-
"mocha": "^5.0
|
|
33
|
+
"mocha": "^5.2.0",
|
|
32
34
|
"proxy": "^0.2.4",
|
|
33
35
|
"proxy-test-server": "^1.0.0",
|
|
34
|
-
"sinon": "^
|
|
35
|
-
"smtp-server": "^3.4.
|
|
36
|
+
"sinon": "^6.1.5",
|
|
37
|
+
"smtp-server": "^3.4.6"
|
|
36
38
|
},
|
|
37
39
|
"engines": {
|
|
38
40
|
"node": ">=6.0.0"
|