- Reponse updates and small fixes
- Library updates
- New & Breaking change: Check for too many emails has been changed to containing the exclude and/or include value. Read the README.
- New: Define attachment names (entire name or part of the name) and it will be blocked. Check the mongodb.ini or README.
- Checking the limit of the message is done now only for incoming messages.
- Attachments file names that start with a "." (dot) are now saved with the checksum and extension as file name.
- Fix: Check for too many emails within a specific time did not work with include.
- Disabled creation of index as it could throw error with different versions of MongoDB. Please create indexes according to your requirements.
- Updated email parser body
- Fix for Redis/KeyDB crash when plugin is started as delivery only
- Added a new option "restart" to restart Haraka if there is an error on adding the email to the collection
- We accept attachments that start with "~" now and convert the filename instead
- Enhanced the body utility further to convert strings even better and faster
- Updated all libraries
- You can also use pnpm to get a much fast experience for updating libraries now :)
- Tested with millions of emails and KeyDB (a drop-in replacement for Redis)
- Changed the body utility to convert buffer to string (seems to fix an issue some users reported)
- You now have the option to use Redis for the limit check! See the README for configuration
- Fixed an issue with the "include" limit param if used as an empty array
- Updated libraries.
- Added "include" in the limit check to be able to only apply the limit check for certain domains
- Re-factored the limits code as we have seen that you would get a timeout from time to time with the previous code
- Disabled sending a delivery error message for DENYSOFT (this greatly cuts down on confusion and messages)
- Do not send back error messages to certain keywords
- Changed option to store the raw email and haraka body from true to false and made it an option
- Fixed some callback
- Update all libraries
- Returning a DENYDISCONNECT when the email size is too big to store
- Another bug fix for limits
- Reverted back to detect-character-encoding as 0.01% of emails could not be parsed otherwise
- Bug fix for parsing when value is undefined
- Reference bug fix
- NEW: We've added an option to limit incoming emails. Please see README
- We are now creating indexes for our collections
- Returning a "DENY" if the message is larger than 16MB
- Returning a "DENY" if the message cannot be parsed
- Updated libraries
- If there is an error upon saving the email to MongoDB, we now try to save again, but without the "raw" and "haraka_body" values (they are redundant anyway). This prevents some errors we have seen with "offset out of range".
- You can now store a comma separated email list for CC and BB in the new error sending code which was introduced in 1.6.2
- The size limit code was further enhanced as it now removes the "raw" and "haraka_body" values first (they are redundant anyway) and the calculates the size again. If the 16MB limit is hit, it will send out an error email
- Added the entire header object to the error email body
- Fixed an issue with the error email not being sent
- Fixed an issue which prevented sending the error email
- Fixed an issue with the error email not showing the message-id properly
- Fixed an issue with returning the proper error code when there is an error with the size
- Enhanced attachment parsing for checking the proper extension
- EML messages with different content type are getting the extension EML properly
- Delivery reports are automatically being renamed so they show up properly
- You can now use a mongodb:// connection string with the new string value
- There is now a new "limit" option as you cannot insert more that 16 MB documents into MongoDB
- You can now send back emails to the sender on limits, parsing, and insert errors
- Improved performance for parsing inline images
- Added custom content type to extend what attachments Haraka should accept as valid files. Otherwise the attachment is renamed to (filename).txt
- Removed some content types from the default reject string
- The log shows you now the connection to the MongoDB instance and depending on what you use a different wording for the connection
- Emails with headers that contain "." are now inserted (previously those emails failed)
- Updated libraries
- We now block harmful attachments by default (you can adjust which files should be rejected in the config)
- We now check the content Type of the file and change the extension if it differs
- Updated libraries
- Fixed an issue with inline images which were not parsed properly anymore as of 1.5.7
- Enhanced performance for inline images
- Made some other improvements to the attachment parsing
- Added check that we have a proper path for path_check
- Fixed an issue with leftover code that potentially could spike the CPU to 100%
- All dates are now properly recorded
- Some errors were not being printed in the log
- Fixed an issue where all hooks were loaded independent of the mechanism, i.e., queue or delivery.
- Updated README with the new path_check setting
- Added the option to check for an attachment path. When the attachment path disappears (think Ceph, Gluster, etc.) then the Haraka process is being stopped as well
- Added "path_check" as new setting (by default it is empty)
- Updated libraries
- NOTE: Do NOT point "path_check" to the attachment directory itself but to its parent. The script will create a directory called "check" there. Otherwise, it will scan your whole attachment directory!
- Prevented and fixed a crash when one of the email bodies is empty (thanks manalejandro - #9)
- Upon a storage error we return now a DENYSOFT (previously it was a DENY)
- Library updates
- Node 12 compatibility
- Library updates
- Further enhancements for emails with different charset
- New and updated libraries
- Fix for emails with different charset
- Updated libraries
- The filename of files within a winmail.dat are now cleaned up as well (surprisingly a lot of people are still sending those)
- Limiting parsing and converting from text to html to 4MB (we saw larger emails to hold up processing significantly)
- Returning on error for some functions
- Fixed some issues with returning from errors
- Updated libraries
- Enhanced attachment filename clean up (all foreign chars are now converted to underscore)
- Updated libraries
- Attachments that don't have a CID but are still inline images but with a different contentdisposition get now a unique ID so they can be identified later on
- This will add attachments if the object has a type "attachment" but contentDisposition is "inline"
- Updated libraries
- Further improvements to the parser
- Further improvements to the parser
- Allow attachments with "_" in the filename
- Updated libraries
- Small improvement to the parser
- Improved the parsing of emails even further as there were still 1% of emails that weren't parsed properly
- Removed logging statements which caused a crash (sorry)
- Added new library
- Re-factored how emails are being parsed (Thanks to Denise McCort)
- Defaulting to the body that Haraka passes instead of replying on the mailparser result only. More or less removed our dependency on mailparser
- There is now a new option how to handle inline images (see readme)
- Attachment file names are now cleaned before saving, too
- Creating links for plain text emails
- Added, updated and/or removed dependencies
- Important: Iconv is now required!
- Happy Memorial Day
- Just some further enhancements to messages that could not be extracted properly
- Messages in Base64 encoding were not read every time. This fix should detect those emails better and read them properly.
- Added a method to extract body from the parsed Haraka body if mailparser fails (Thank you Denise McCort)
- Explicitly added Iconv to the mailparser options
- Updated MongoDB library
- Changed to mailparser
- Updated to MongoDB v3
- Updated all dependent libraries, too
- Inline images are no longer stored as attachments as they are replaced in the HTML as Base64 now
- The updated libraries also solve an issue where the HTML body under rare circumstances could not be read
- Tested and working with Node v10.15.x
- Added new "transferred" column
- Catching now when collection is not defined, todo items are not defined, and some headers are not defined
- Small bugfix for attachment names
- We had to revert back to the "old" mailparser, i.e. 0.6.2 version. We are now using the mailparser-mit library. The present mailparser project is a) not maintained anymore and b) showed weird issues with attachments, inline images and just behaved wrong
- All the updates from previous versions have been merged into this one
- Fixed an issue with plain-text emails (was not available in the Mailparser object)
- Fixed a small issue with HTML and references
- Fixed a small issue when certain header values are not defined
- This plugin now also takes care of sending a bounce message or not
- Checking if the last bounce message to user has been over an hour ago. If so, a new bounce will be sent
- Storing more bounce information in collection
- Fixed an issue when there is no attachment.filename defined
- Fixed new fileName param
- Updated to latest mailparser and re-factored parsing
- Will store .ics attachments properly
- Commented log entries which caused the attachment content to print to log
- Bug fix for winmail.dat files
- Fixed with installlation
- Some message don't have a message-id, thus creating a random 'objectId@haraka' for message-d header now
- HTML field will not longer be populated with the text field if not available
- If there are no attachments in the email we just store an empty array in the field
- Storing size, mail_from and rcpt_to as separate fields in collection now
- Using mailparser-mit now
- Added node-gyp and iconv as dependencies
- Added field to incoming collection
- Fixed and issue with attachments and the "plugin" variable
- Passing the "connection" to mailparser function
- Pull-request for mongodb without username and password
- Release to store results for outgoing emails
- Storing emails works now again (was broken in previous commit)
- Some bug fixes
- Added more logging
- Changed configuration to have sections (enabled section does nothing right now)
- Complete refactor for new haraka plugin architecture