Commit Graph

10274 Commits

Author SHA1 Message Date
Kevin Ansfield
6a057fad99
Added /emails/:id/retry/ endpoint for retrying failed emails (#11410)
We want to allow admin users to trigger a retry of failed emails without having to go through the unpublish/republish dance.

- fixed resource identifier in email permissions migration so email permissions are added correctly
- added new email permissions migration so that beta releases can be upgraded without rollback (will be a no-op for any non-beta upgrades)
- added `/emails/:id/retry/` canary Admin API endpoint
  - follows same URL pattern as theme activation
  - only triggers mega service retry endpoint if the email has a `'failed'` status
2019-11-22 14:20:32 +00:00
Peter Zimon
d7d5d9a13d Refined email styles 2019-11-22 11:40:56 +01:00
Kevin Ansfield
f6ef12847a Override "Forbidden" Mailgun error to be more useful
no issue

- a 401 is received from Mailgun when invalid credentials are used but the default error message of "Forbidden" is not particularly useful
- intercepts "Forbidden" and swaps it for "Invalid Mailgun credentials" to be more user-friendly
2019-11-20 17:31:26 +00:00
Peter Zimon
e82f706afa Email design refinements 2019-11-20 18:27:52 +01:00
Naz Gargol
c2aec69af9
Added email retry logic for failed batches (#11402)
no issue

- When whole email batch fails we want to allow retrying sending a batch when post is republished
- Refactored naming for email event handling in mega
2019-11-18 21:28:54 +07:00
Kevin Ansfield
f14e3fa11b Updated yarn.lock 2019-11-18 11:10:39 +00:00
Kevin Ansfield
1c8b78818f Merge branch 'master' into mega 2019-11-18 11:09:46 +00:00
Nazar Gargol
6751cc50c8 Fixed integrity test
no issue

- Schema was changed in c99f40957e
2019-11-18 15:47:19 +07:00
Rish
baccbb4942 Updated test email to throw error for failed requests
no issue
2019-11-18 13:24:28 +05:30
Renovate Bot
fb7afd1672 Update dependency sharp to v0.23.3 2019-11-18 05:25:57 +00:00
Renovate Bot
f5e1d24113 Update dependency metascraper to v5.8.8 2019-11-18 03:26:47 +00:00
Renovate Bot
ad48fe0057 Update dependency @tryghost/html-to-mobiledoc to v0.6.1 2019-11-18 02:24:40 +00:00
Renovate Bot
8383d5c9c2 Update dependency @tryghost/helpers to v1.1.19 2019-11-18 01:29:39 +00:00
Peter Zimon
a64fab7e69 Refined mobile screen for unsubscribe 2019-11-16 16:39:26 +01:00
Peter Zimon
1f67cc6ddc Updated unsubscribe screen error handling 2019-11-16 13:02:36 +01:00
Kevin Ansfield
0a20243540 Fixed knex connection pool errors when saving posts with sqlite
no issue

- sub query within the `Post.onSaving` method was not passing through the transaction options which was locking up sqlite
2019-11-15 15:11:55 +00:00
Peter Zimon
b409a665b5 Refined unsubscribe screen design 2019-11-15 14:01:45 +01:00
Naz Gargol
c99f40957e
Improved mega error handling (#11393)
no issue

- Increased default mailgun retry limit to 5
- Handling retry logic closer to SDK layer gives less future manual handling
- Allowed failing request to be passed through to the caller
- To be able to handle failed requests more gracefully in the future we need all available error information to be given to the caller
- The previous method with `Promise.all` would have rejected a whole batch without providing details on each specific batch.
- Limited data returned with a failed message to batch values
- Added better error handling on mega layer
- Added new column to store failed batch info
- Added reference to mailgan error docs
- Refactored batch emailer to respond with instances of an object
- It's hard to reason about the response type of bulk mailer when multiple object types can be returned
- This gives more clarity and ability to check with `instanceof` check
2019-11-15 18:25:33 +07:00
Kevin Ansfield
ee47dd4dae
Added /unsubscribe/ route to the front-end (#11394)
no issue

- adds new router to the frontend for handling unsubscribe
- default template lives in `core/server/frontend/views/unsubscribe.hbs`
- `{{error}}` is present and contains the error message when unsubscribe fails
- `{{member}}` is present and contains the member email
- updated unsubscribe url to match the new format
2019-11-15 09:36:49 +00:00
Rish
52eb3ca9da Converted all link tags in preview to open in new tab
no issue
2019-11-15 11:26:43 +05:30
Kevin Ansfield
90f61d1f04 Added 'bulk-email' tag to bulk messages sent with mailgun
no issue

- helps distinguish bulk vs transactional email when both are using the same mailgun account
2019-11-15 00:06:23 +00:00
Kevin Ansfield
5fd2b7fed1 Added send_email_when_published query param to posts endpoint
no issue

- having a `send_email_when_published` property on the Post resource that only has an effect at certain times was confusing and was causing issues with clients that needed to know details of how that toggle worked
- makes `post.send_email_when_published` a fully read-only property in the API
- adds support for `?send_email_when_published=true` query param that can be passed in POST/PUT requests to the posts endpoint when scheduling or publishing a post - this is the only way to set `post.send_email_when_published` to `true`
- adds handling to ensure that `post.send_email_when_published` is always reset to `false` when reverting a post back to a draft _unless_ an email has already been sent
2019-11-14 17:29:03 +00:00
Rish
dbae6ccb58 Added site title as sender name for bulk email
no issue
2019-11-14 20:39:51 +05:30
Rish
c4706230d9 Updated fixtures regression test 2019-11-14 20:39:25 +05:30
Naz Gargol
d325912a55
Switched scheduler to use API v3 (#11391)
no issue

- The switch is needed so that mailinglist work when posts are scheduled
- v3 API is the default stable API that should be preferably used by all clients (including Scheduler)
2019-11-14 15:12:52 +07:00
Rish
1d89bbc852 Fixed settings tests 2019-11-14 11:32:34 +05:30
Nazar Gargol
98364e4d66 Removed unused method from bulk-mailer
- This was a leftover from rebase
- The method is not meant to be used anywhere
2019-11-14 12:35:26 +07:00
Rish
22b48cbef3 Fixed mailgun instance not updated on settings change
no issue
2019-11-14 10:45:26 +05:30
Rish
6d1de1b912 Fixed post not showing authors in email
no issue
2019-11-14 10:45:05 +05:30
Rish
eaf7289af3 Fixed bulk settings input serializer 2019-11-14 08:20:16 +05:30
Rish
b7df5c360d Updated send test email to use common email data 2019-11-13 22:53:33 +05:30
Rish
d3229b6ade Wired mailgun provider API keys via config or settings
no issue
2019-11-13 22:29:31 +05:30
Rish
05e9f01f30 Added dynamic fields isEnabled/isConfig on bulk email settings
no issue

Adds 2 new dynamic calculated fields on bulk email settings -

`isEnabled` - If mailgun is configured either with config or admin settings
`isConfig` - If mail is configured via config directly
2019-11-13 22:29:31 +05:30
Rish
572e56f90a Removed redundant bulk email settings migration
no issue
2019-11-13 22:29:31 +05:30
Rish
e540f36a9a Added new top-level bulk email settings
no issue
2019-11-13 22:29:31 +05:30
Peter Zimon
06afa4c042 Refined mail design 2019-11-13 14:11:54 +01:00
Rish
af43c0872c Fixed mailgun not sending test emails due to empty recipient variables
no issue

Mailgun expects `recipient-variables` to be a json object and fails to attempt sending the message in case its undefined, which is the case for test emails as they don't have member `uuid` or `unsubscribe` url. This sets a default empty object for `recipent-variables` in case of no data.
2019-11-13 17:02:56 +05:30
Fabien O'Carroll
d4ab151fce
Removed basic email validation
no-issue

This was rubbish anyway, and we should just rely on the input having `type=email`
2019-11-13 18:18:49 +07:00
Naz Gargol
f5479e1473
Added batching support for bulk email service (#11388)
no issue

- The limitation on Mailgun side of API seems to be 1000 emails per message.
- The only place where I could find a hard limit of 1000 emails per
batch was this PHP SDK issue: https://github.com/mailgun/mailgun-php/issues/469
- To store ids of sent messages introduce a mega column on the emails table. They can be synced with stats or other metrics during even pooling in the future
- Removed redundant `join(',')` statement.The SDK accepts an array of emails as well. Less code - better code :)
2019-11-13 17:52:23 +07:00
Naz Gargol
208b710677
Added tagging support to bul email service (#11390)
no issue

- Tagging needs to be added to be able to group/filter sent messages for various reasons. An example use case is when multiple Ghost instances use the same mailgun account
- Tag value can be provided as a part of config.json file under
`bulkEmail.mailgun.tag` key
2019-11-13 17:36:19 +07:00
renovate[bot]
986df75f43 Update dependency metascraper-author to v5.8.7 (#11369) 2019-11-13 15:16:59 +07:00
renovate[bot]
da0ad2d717 Update dependency metascraper-logo-favicon to v5.8.7 (#11373) 2019-11-13 15:16:27 +07:00
renovate[bot]
fc3182f9f9 Update dependency metascraper-image to v5.8.7 (#11371) 2019-11-13 15:16:00 +07:00
renovate[bot]
4709d1cc6b Update dependency metascraper-title to v5.8.7 (#11375) 2019-11-13 15:14:51 +07:00
renovate[bot]
c531b12a41 Update dependency metascraper-logo-favicon to v5.7.21 (#11362) 2019-11-13 13:57:29 +07:00
renovate[bot]
be9066bb79 Update dependency metascraper-url to v5.8.7 (#11376) 2019-11-13 13:49:23 +07:00
renovate[bot]
fc9187d2ab Update dependency metascraper-description to v5.8.7 (#11370) 2019-11-13 13:48:47 +07:00
renovate[bot]
b78a467890 Update dependency metascraper-logo to v5.8.7 (#11372) 2019-11-13 13:47:06 +07:00
renovate[bot]
3ae8d3b673 Update dependency metascraper to v5.8.7 (#11368) 2019-11-13 13:46:27 +07:00
renovate[bot]
28a69be7ce Update dependency metascraper-publisher to v5.8.7 (#11374) 2019-11-13 13:45:17 +07:00