email-attachments
v1.0.4
Published
Download email attachments via IMAP
Downloads
2
Readme
Using as module
var onEnd = function (result) {
if (result.error) {
console.log(result.error)
return
}
console.log("done")
console.log(result.latestTime)
}
var downloadEmailAttachments = require('email-attachments');
downloadEmailAttachments({
invalidChars: /[^A-Z]/g, //Regex of Characters that are invalid and will be replaced by X
account: '"[email protected]":[email protected]:123', // all options and params besides account are optional
directory: './files',
filenameTemplate: '{day}-{filename}',
filenameFilter: /.xlsx?$/,
timeout: 3000,
log: {warn: console.warn, debug: console.info, error, console.error, info: console.info },
since: '2015-01-12',
lastSyncIds: ['234', '234', '5345'] // ids already dowloaded and ignored, helpful because since is only supporting dates without time
attachmentHandler: function (attachmentData, callback, errorCB) {
console.log(attachmentData)
callback()
}
}, onEnd)
Options
You have to pass an imap account with password, the format is:
username:password@host:port
username
If username contains@
or:
, put it in quotes, e.g. `"[email protected]":[email protected]password
If password contains@
or:
, put it in quotes, e.g. `joe:"123:@456"@example.comhost
This is the imap domainport
Optional, defaults to993
--directory
/ directory
Optional. Defaults to ./
Directory where attachments shall be downloaded to.
--filename-template
/ filenameTemplate
Optional. Defaults to {filename}
Filenames the attachments shall be saved as. Using /
will
create subfolders. The following placeholders are available
{filename}
, e.g.data.xls
{basename}
, e.g.data
{extension}
, e.g.xls
{day}
, e.g.2015-01-01
{recipientAddress}
, e.g.[email protected]
{senderAddress}
, e.g.[email protected]
{id}
, unique content ID, e.g.c361f45d-98b6-9b18-96ac-f66aee2cb760
{nr}
, starts at 1 and increments for every stored file.
--filename-filter
/ filenameFilter
Optional
Pass a regular expression, only attachments matching it will be downloaded.
--timeout
/ timeout
Optional, defaults to 10000
Timeout in millisecond to wait for data from the imap server until closing the connection.
--since
/ since
Optional. Defaults to today's date in YYYY-MM-DD
format
Local setup
git clone [email protected]:gr2m/download-email-attachments.git
cd download-email-attachments
npm install
Run all tests
npm test
Note: There is no full stack test yet, because of the complexity of stubbing an imap server. If someone could help here, that'd be much appreciated! Ping me
License
MIT