witzig
cff908887f
Fixed throttling and pausing #243
2017-06-01 13:08:45 +02:00
vladimir
1e3fe96825
[bugfix] Blacklisted emails counter not set to 0 on campaign reset
2017-05-27 14:14:32 +02:00
vladimir
25bb4afa80
Merge with upstream
2017-05-27 14:07:56 +02:00
vladimir
59912e3c29
Separate disable opened/clicked tracker to 2 options
2017-05-27 14:04:49 +02:00
Tomas Bures
ccd37ac792
Polishing e2e test API. Added option to parse links and extract parameters from them. Added option to construct parameterizedlinks in "navigate".
2017-05-23 19:34:01 +02:00
Tomas Bures
62cc881fd4
Merge remote-tracking branch 'upstream/master'
2017-05-18 22:46:53 +02:00
witzig
6c35046ab2
e2e tests (draft)
2017-05-10 01:40:02 +02:00
Tomas Bures
6b92e39112
Some fixes in lists and apis to reflect the changes in subscriptions.
...
Confirmation URLs split per action type. This allows more specific error reporting.
2017-05-06 06:35:32 -04:00
Tomas Bures
11990d62b2
Merge branch 'master' of github.com:Mailtrain-org/mailtrain
...
Conflicts:
languages/de_DE.po
2017-05-04 17:58:55 -04:00
Tomas Bures
a6d25e668b
Release candidate of the selectable unsubscription
...
Implemented the resubscription process - i.e. pre-filling in the form when the subscription link is clicked in the unsubscription notice.
2017-05-04 17:42:46 -04:00
witzig
408db13fd4
Updated RSS merge tag reference
2017-05-03 23:13:05 +02:00
Tomas Bures
bd4961366f
More or less all the functionality for selectable unsubscription process. Not tested yet!
...
Sending emails moved completely to controller. It felt strange to have some emails sent from the controller and some of them from the model.
Confirmations refactored to an independent model that can be potentially used also for other actions that need an email confirmation.
2017-05-03 15:53:34 -04:00
Alejandro Fanjul
92bffd78de
RSS Improvements to allow more template Tags like ([RSS_ENTRY_TITLE], [RSS_ENTRY_DATE], [RSS_ENTRY_LINK], [RSS_ENTRY_CONTENT], [RSS_ENTRY_SUMMARY], [RSS_ENTRY_IMAGE_URL])
2017-05-02 18:38:54 +02:00
Tomas Bures
32e2e61789
Unsubscription is identified by subscriber cid. This effectivelly allows only the recipient of the email to unsubscribe. This addresses issue #221 .
...
I also scraped the "auto" parameter which automatically submits the unsubscription form when the link is clicked in a campaign email. Instead, I introduced the
unsubscription options ONE_STEP, ONE_STEP_WITH_FORM, TWO_STEP, TWO_STEP_WITH_FORM. The options without "_WITH_FORM" shall behave like when called with "auto".
This functionality is to come. Currently it behaves as ONE_STEP_WITH_FORM.
2017-04-30 13:01:22 -04:00
Tomas Bures
3783d7c2ce
Halfway through extending subscriptions by selectable unsubscription process. Also contains changes towards better handling of scenarios when address is already subscribed.
2017-04-30 10:51:47 -04:00
Tomas Bures
92df915a7e
config.user/group used if config.rouser/rogroup is not set
2017-04-27 18:25:05 -04:00
Tomas Bures
7a08ffa596
Fix - reports crashed if the user could not be switched (because mailtrain was not run under root). Now an error is reported.
2017-04-27 18:14:15 -04:00
root
2ac89f3365
Report processor worker refactored to run under another user (nobody) and have its own mysql credentials.
2017-04-27 16:35:53 -04:00
Tomas Bures
418dba7b9f
Work in progress on securing reports.
2017-04-25 22:49:31 +00:00
Tomas Bures
3072632d8d
Fixed eslint errors
2017-04-23 15:24:31 -04:00
Tomas Bures
8237dd5d77
The "Reports" feature seems functional.
...
Some small refactoring (column widths) of rendering tables in Lists, Templates, and Campaigns so that it is the same as Reports.
2017-04-20 19:42:01 -04:00
Tomas Bures
e7d12f1dbc
Halfway through in refactoring the report generation to a separate process running asynchronously of the Express server.
2017-04-17 18:31:01 -04:00
Tomas Bures
2056645023
Added the option to select lists in report.
...
Added an option to generate a CSV report.
2017-04-17 16:30:31 -04:00
Tomas Bures
6ba04d7ff4
This is a preview of the Reports functionality.
...
It allows defining report templates and then create reports based on the templates.
A template defines:
- parameters - to be set in the report (currently only selection of campaigns, in the future to be extended to selection of lists/segments, and selection from pre-defined options)
- data retrieval / processing code (in Javascript)
- rendering template (in Handlebars)
This main functionality is accompanied by a few minor tweaks here and there. Worth notice is the ability to use server-side ajax table s for multi-selection of campaigns. This is meant for reports that compare data across multiple campaigns. This could possibly be even used for some poor man's A/B testing.
Note that the execution of custom JavaScript in the data retrieval / processing code and definition of custom Handlebars templates is a security issue. This should however be OK in the general case once proper user management with granular permissions is in. This is because definition of a report template is anyway such an expert task that it would normally be performed only by admin. Instantiation of reports based on report templates can be then done by any user because this should no longer be any security problem.
2017-04-16 18:09:08 -04:00
Tomas Bures
9fdf52674e
Lists and Templates overviews refactored to use ajax. Before the refactoring, they behaved and looked a bit different to the other (Ajax) tables. The main difference in the behavior was in the row numbers (1st column) when sort order was switched. The non-ajax tables rearranged the numbers in the 1st column while the ajax-tables didn't.
...
Some small tweaks in table-helpers to allow selecting which fields are pulled from DB (and how they are renamed).
2017-04-16 03:22:32 -04:00
Tomas Bures
e5190c9b20
Code de-duplication of list and filter methods. The common functionality moved to table-helpers.js
...
This should make developing new table-based views easier.
2017-04-15 08:24:58 -04:00
Tomas Bures
c74232e9c5
Added option to mark a list as not being allowed to be subscribed by public users using the form.
...
The settings is a checkbox in list create/edit.
2017-04-14 08:57:47 -04:00
vladimir
c9136f8abd
Add blacklist function
2017-04-11 10:10:02 +02:00
witzig
9c2444488f
Satisfy ESLint no-unused-vars
2017-04-02 14:00:42 +02:00
Andris Reinman
f234a64df7
Merge pull request #187 from larrabee/disable_email_check
...
Add option to disable email cheking for imported CSV
2017-03-31 13:43:08 +03:00
vladimir
3b39f619b1
Small visual change in device/country charts
2017-03-31 11:51:26 +02:00
vladimir
1547e887c3
Add option to disable email cheking for imported CSV
2017-03-31 11:20:43 +02:00
Andris Reinman
d7c06e0a5a
Do not use .stack property with error objects
2017-03-24 13:04:38 +02:00
Andris Reinman
179e0d5ab3
fixed thrown errors
2017-03-21 10:39:44 +02:00
vladimir
3152ecb228
Merge remote-tracking branch 'upstream/master' into clicks-by-device-type
2017-03-21 10:26:50 +02:00
Andris Reinman
979321ea98
Merge pull request #180 from witzig/custom-forms-mjml
...
Custom forms mjml
2017-03-21 09:54:59 +02:00
vladimir
8caf334fcc
Cosmetic changes
2017-03-21 01:06:05 +02:00
witzig
0b0929aa7b
Some code formatting
2017-03-20 21:40:21 +01:00
witzig
f2b7d4c8df
Removed data keys from table custom_forms
2017-03-20 21:25:41 +01:00
witzig
c3ee53bd4b
Refactored Custom Form Table Structure
2017-03-20 19:37:09 +01:00
vladimir
10dd23fee4
Merge remote-tracking branch 'upstream/master' into clicks-by-device-type
2017-03-20 14:50:10 +02:00
vladimir
1ba3bce6eb
Add device type detect and stats calculation for open/click rate by device type and country
2017-03-20 14:44:17 +02:00
witzig
477aff95d5
Moved scripts out of layout.mjml.hbs
2017-03-19 16:14:31 +01:00
witzig
91addb14af
Satisfy ESLint indentation rule
2017-03-19 16:03:11 +01:00
witzig
adf4be7836
Fixed security issue where custom form description tags were able to include script tags
2017-03-19 15:53:41 +01:00
witzig
b09af60fac
Merge branch 'master' into custom-forms-mjml
...
# Conflicts:
# lib/tools.js
# package.json
2017-03-19 13:44:24 +01:00
witzig
2e50fbc8ae
Custom Forms
2017-03-19 13:36:57 +01:00
Andris Reinman
ae6affda81
do not allow script tags in description html
2017-03-19 14:22:44 +02:00
Andris Reinman
0879fa412a
force template html as html code, not an url or file path
...
ensure that external resources are not loaded by jsdom
2017-03-19 14:13:01 +02:00
Andris Reinman
9d5fb816c9
Fixes issue with HTML entities
2017-03-19 13:39:34 +02:00
vladimir
b6497b0e86
Fix logging for ldap module
2017-03-15 20:45:21 +02:00
vladimir
1ca27b6b40
Remove passport-ldapjs from packpage.json and add warning message
2017-03-15 20:26:54 +02:00
vladimir
2e5def404f
[bugfix] Fix LDAP issue with OpenLDAP/MS AD
2017-03-15 19:10:00 +02:00
Andris Reinman
020a77c78f
applied some code style changes
2017-03-10 14:14:38 +02:00
witzig
588eed008b
GrapeJS and Mosaico Integration
2017-03-10 09:59:25 +01:00
Andris Reinman
ab6ed1e505
Ensure ordering for custom fields
2017-03-08 19:07:51 +02:00
Andris Reinman
37531f2550
Merge branch 'master' of github.com:andris9/mailtrain
2017-03-07 16:31:34 +02:00
Andris Reinman
d25565b6f8
Updated translation support
2017-03-07 16:30:56 +02:00
witzig
a164a7fb40
Moved tracking scripts to partial and made tools.formatMessage() less greedy
...
The change in tools.formatMessage() prevents stripping CSS like
a[data-foo] and arrays in JS. Thus only replacing mergeTag it knows
about.
2017-03-06 14:52:22 +01:00
witzig
28c08cf847
Update helpers.js
2017-03-04 22:04:13 +01:00
witzig
8fdb2840c4
Moved Merge Tag Helpers to helpers.js
...
… to satisfy ESLint top-level module scope.
2017-03-04 21:50:44 +01:00
witzig
d9c1d8e595
Merge remote-tracking branch 'upstream/master'
2017-03-04 18:38:44 +01:00
witzig
633463108e
Merge tag reference abstraction/partial
...
Perhaps helpers.js would be a more suitable place for
getDefaultMergeTags() and getListMergeTags() … ?
2017-03-04 18:37:41 +01:00
Andris Reinman
ba8bd12123
initial translations support
2017-03-04 18:15:16 +02:00
witzig
a11d95f3d7
Support for custom HTML editors
2017-03-02 19:30:40 +01:00
Andris Reinman
66bfcebd47
added support for ses
2017-02-17 15:56:55 +02:00
Andris Reinman
9778c486e9
Allow international formatted dates in CSV imports
2017-02-02 16:47:50 +02:00
Andris Reinman
441b121b99
allow using only text content
2017-01-29 18:29:50 +02:00
Andris Reinman
59c7e1dd8b
allow using only text content
2017-01-29 18:23:00 +02:00
Andris Reinman
50f6c8d101
Reload mailer config once admin updates Mailtrain settings
2016-12-25 17:59:50 +02:00
Andris Reinman
8ca1fbb535
Added option to spawn multiple sender processes
2016-12-11 00:38:54 +02:00
Andris Reinman
37b0ac9aec
Do not use array.includes to support some older versions of node
2016-12-08 13:49:31 +02:00
Andris Reinman
170b60f9a0
Added option to set default options for nodemailer
2016-12-07 21:39:36 +02:00
Andris Reinman
57c6e0ae79
check if the new address is not already used
2016-12-07 16:21:22 +02:00
Andris Reinman
7fce6e28fa
Allow updating subscribers email address
2016-12-07 16:12:26 +02:00
Johannes Zellner
901591dde4
Ensure the campaigns model picks up reply_to
2016-11-25 17:10:44 +01:00
Andris Reinman
8d2e5f23e6
fixed campaign error
2016-11-13 13:50:51 +02:00
Andris Reinman
bd20e16d73
v1.19.1
2016-09-15 10:06:19 +03:00
Andris Reinman
0896e9f9cf
v1.19.0
2016-09-15 09:57:19 +03:00
Andris Reinman
35bce32529
Full support for message attachments
2016-09-09 23:09:04 +03:00
Andris Reinman
bfc6983c93
Added attachments to campaigns
2016-09-09 22:12:03 +03:00
Andris Reinman
89715c56fc
Merge branch 'master' of github.com:andris9/mailtrain
2016-09-09 13:55:47 +03:00
Andris Reinman
8e5279189a
fixed key conversion function
2016-09-09 13:54:44 +03:00
Andris Reinman
e1ace459cf
Require subscribers to have JavaScript turned on
2016-09-08 20:43:02 +03:00
Andris Reinman
83ac907f24
Require JavaScript to be turned on for subsciption confirmations
2016-09-08 17:51:39 +03:00
Andris Reinman
78083c33fd
Require JavaScript to be turned on for subsciption confirmations
2016-09-08 17:49:01 +03:00
Andris Reinman
d651cca039
Updated installation script
2016-09-08 15:31:38 +03:00
Andris Reinman
95379f731f
v1.18.0
2016-09-08 14:39:41 +03:00
Andris Reinman
d2f0d16980
Updated install script to bundle ZoneMTA
2016-09-08 11:20:33 +03:00
Andris Reinman
69ff628cda
Added support for JSON
2016-08-29 15:51:20 +03:00
Andris Reinman
35078defb6
do not fail on custom field index error
2016-08-29 14:53:39 +03:00
Andris Reinman
7cb5af94b0
return tag
2016-08-29 14:09:07 +03:00
Andris Reinman
c1cf51e877
Return id for field insert api call
2016-08-29 14:03:49 +03:00
Andris Reinman
896fc01015
v1.16.0
2016-08-29 13:57:27 +03:00
Andris Reinman
3fcd389db8
Merge branch 'cloudron-io-master'
2016-08-29 13:02:20 +03:00
Andris Reinman
1469e08063
Added API call to create new custom fields
2016-08-29 12:27:14 +03:00
Johannes Zellner
2c387351c6
Deny access for empty password authentication attempts
2016-08-11 14:46:52 +02:00
Johannes Zellner
4f3b2e9dcb
Add ldap authentication
2016-08-11 13:21:48 +02:00
Johannes Zellner
3f86ad2945
Add users.add()
2016-08-11 13:15:51 +02:00
Johannes Zellner
dff9996fda
Add users.findByUsername()
2016-08-11 13:01:02 +02:00