-
Notifications
You must be signed in to change notification settings - Fork 11
/
readme.txt
320 lines (216 loc) · 12.1 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
=== Mail logging - WP Mail Catcher ===
Contributors: Wardee
Tags: mail logging, email log, email logger, logging, email logging
Requires at least: 4.7
Tested up to: 6.6
Requires PHP: 7.4
Stable tag: 2.1.10
License: GNU General Public License v3.0
License URI: https://raw.githubusercontent.com/JWardee/wp-mail-catcher/master/LICENSE
Donate link: https://paypal.me/jamesmward
Stop from ever losing your emails again! This fast, lightweight plugin (under 140kb in size!) is also useful for debugging or backing up your messages
== Description ==
Logging your mail will stop you from ever losing your emails again! This fast, lightweight plugin (under 140kb in size!) is also useful for debugging or backing up your messages.
Just install and activate then all of your contact form emails will be logged and saved to your DB with no additional configuration required.
View and manage all your form submissions through the default WordPress interface. An email failed to send? With a single click you can resend the backed up email.
Send emails out directly from the WordPress interface. Also includes support for attachments.
Immediately find out if your contact form submission was successfully sent.
## Features
* Zero setup required - just install and away you go
* Minimalistic - no overbloated features you never use weighing your site down - under 140kb in size!
* Bulk export emails to CSV for easy inclusion into Excel or any other program
* Compose new emails with the WordPress controls you're already familiar with
* Resend your emails in bulk
* Debugging - see exactly which file and code line was responsible for sending the email, along with any errors encountered
* Manage what user permissions can see the logs
* Routinely have your logs cleared out at a specified time - or keep them forever
* Need to be notified when there's a problem sending your mail? We've got hooks that allow you to do just that
* Completely free
## Hooks and actions
* `wp_mail_catcher_mail_success` is triggered when a message is sent and logged successfully. It has a single argument that is an array containing the log
* `id` related to the id in the `mail_catcher_logs` MySQL table
* `time` relative, readable time to when the log was saved
* `email_to` the email address(es) that the message was sent to
* `subject` the subject line of the message
* `message` the contents of the message
* `status` an integer depicting if the message was sent successfully or not (1 = sent successfully. 0 = sending failed)
* `error` the error that occurred - if any
* `backtrace_segment` a json_encoded object that shows which file and line the mail was initially triggered from
* `attachments` a list of any attachments that were sent along with the email
* `additional_headers` a list of any headers that were sent
* `attachment_file_paths` a list of the location of any attachments that were sent
* `timestamp` a unix timestamp of when the email was sent
* `is_html` a boolean, that will be true if the message is a html email and false if not
* `email_from` the from value of the email
* `wp_mail_catcher_mail_failed` is triggered when a message failed to send and logged successfully. It has a single argument that is an array containing the log (same as the arguments for `wp_mail_catcher_mail_success`)
* `wp_mail_catcher_deletion_intervals` is a filter that should return an array where each key is an amount of time in seconds, and the value is the label. Used to determine when a message has expired and should be deleted
* `wp_mail_catcher_before_success_log_save` is a filter that is called just before a successful log is saved. It has a single argument that is the transformed log that will be saved - use this to alter the log before it's saved. Returning `false` will stop the log from being saved. Also note that this is fired even when an email has errored, because all logs are initially saved as "successful" before being possibly updated with an error (if applicable). This is because of the way the `wp_mail` and `wp_mail_failed` are implemented in WordPress.
* `time` a unix timestamp of when the email was sent
* `email_to` the email address(es) that the message was sent to
* `subject` the subject line of the message
* `message` the contents of the message
* `backtrace_segment` an array that shows which file and line the mail was initially triggered from
* `wp_mail_catcher_before_error_log_save`
* `time` a unix timestamp of when the email was sent
* `email_to` the email address(es) that the message was sent to
* `subject` the subject line of the message
* `message` the contents of the message
* `backtrace_segment` an array that shows which file and line the mail was initially triggered from
* `error` the error that occurred
== Frequently Asked Questions ==
= Is this really free? =
Yup, completely 100% free, no premium add-ons or anything like that.
= Does that include adverts/nagging =
Yes, there are no adverts/annoying messages asking you to "upgrade to pro" or anything similar, 100% of the features are available.
= What plugins are supported? =
Anything that doesn't unhook the native wp_mail function is supported, this includes but not limited to:
* WooCommerce
* Contact Form 7
* MailGun
* SparkPost
* Easy WP SMTP (excluding their test email function)
* SendGrid
* BuddyPress
[Click here for a full list](https://github.com/JWardee/wp-mail-catcher#confirmed-support)
= What plugins are currently not supported =
* WP Mail Bank (unhooks wp_mail filters)
* Post SMTP (overrides wp_mail function and doesn't implement the same actions/filters)
If you'd like to see support for these plugins or any other plugins please leave a feature request in our [GitHub tracker](https://github.com/JWardee/wp-mail-catcher/issues)
= I've found an issue!/I have a great idea on how to improve this =
Great! Please leave a note in our (GitHub tracker)
== Screenshots ==
1. Send a quick email from your dashboard
2. Basic, no clutter options page
3. The table supports: sorting, exporting and resending
4. Supports column customisation and pagination
== Changelog ==
= 2.1.10 =
- Security: Fixed XSS vulnerability, reported by Le Ngoc Anh via Patchstack
= 2.1.9 =
- Fix: When stopped a log from being saved via `wp_mail_catcher_before_success_log_save`, it now returns the unaltered mail
= 2.1.8 =
- New: Added new hook `wp_mail_catcher_before_success_log_save`
- New: Added new hook `wp_mail_catcher_before_error_log_save`
= 2.1.7 =
- Security: Added additional nonce checks to setting actions
= 2.1.6 =
- Fix: Logs not appearing in WP versions under 6.2
= 2.1.5 =
- Fix: Html emails are now decoded before being rendered
- Fix: Updated serialisation to use maybe_unserialize for extra compatibility
= 2.1.4 =
- Security: Fixed Injection vulnerability, reported by Muhammad Daffa via Patchstack
= 2.1.3 =
- Fix: Improved HTML email detection
- Fix: Improved XSS filtering
= 2.1.2 =
- Fix: Escaping no longer mangles exports
= 2.1.1 =
- Security: Fixed XSS vulnerability, reported by Alex Thomas of Wordfence
= 2.1.0 =
- New: Added support for viewing encoded non-ASCII characters in the subject line on the log table
- New: Added resend link inside of details modal
- Deprecation: Increased supported PHP version from 7.2 to 7.4
= 2.0.5 =
- Fix: Improved error handling when attempting to save a log without running the migration
- New: Added ability to force rerun database migrations
- Improvement: Database migrations will now happen automatically on plugin upgrade
= 2.0.4 =
- Fix: Resolved memory leak when saving a new log
= 2.0.3 =
- Fix: Auto deleting clearing all logs
= 2.0.2 =
- Improvement: Reduced memory usage when deleting expired logs
- Fix: Emails sent with the to address formatted with angled brackets are now escaped
- Possible fix: Aligned wp_mail handling to be much closer to older version as some people reported issues
= 2.0.1 =
- Fix: Bulk actions (delete, export, resend) now works
= 2.0.0 =
- Deprecation: Increased supported PHP version from 5.6 to 7.2
- New: Added partial lazy loading to reduce database strain
- New: Can now manually trigger removing of old logs
- New: Added support for wp_mail_content_type filter
- New: Implemented database upgrade system
- Fix: Old logs not being automatically deleted
- Fix: Pagination now works on search results or other filters
- Fix: BuddyPress error exception
- Fix: Re-implemented resending HTML emails
- Fix: PHP notice appearing on settings page under certain circumstances
- Fix: Scrolling not working correctly on mobile and tablets
= 1.5.4 =
- Fix: Auto delete wasn't always deleting Logs
- Fix: Fixed header syncing issue
= 1.5.3 =
- Fix: Cron job issue preventing logs from being auto deleted
- Fix: v1.5.0 broke compatibility with some other mail plugins
= 1.5.2 =
- Fix: PHP notice that appears if additional_headers column is corrupted
= 1.5.1 =
- Fix: Auto deleting timer isn't pulled through on settings page. Thanks to @oginomizuho
= 1.5.0 =
- New: Added beta BuddyPress support
- New: Can now auto delete messages that are over a specific age
- Fix: Minute/seconds being slightly off in export
= 1.4.1 =
- Fix: Log exports now show the correct date and time
= 1.4.0 =
- New: Refreshed log table UI
- New: Added 2 new actions `wp_mail_catcher_mail_success` and `wp_mail_catcher_mail_failed`
= 1.3.10 =
- Performance: Email previews are now loaded lazily
= 1.3.9 =
- Fix: Auto delete notification is always shown regardless of settings
= 1.3.8 =
- Fix: Logs per page screen option was being ignored
- Compatibility: Added support for WordPress 5.5
= 1.3.7 =
- New: Can now see raw html code of an email if it's html enabled (open a message and go to the Debug tab)
- Update: npm dependencies updated
= 1.3.6 =
- Fix: Object serialization issue stability when a third party modifies the object
- Fix: Minor typo
= 1.3.5 =
- New: French translation
= 1.3.4 =
- New: Added search functionality, supports partial and exact matching for: to, subject, message, attachment names and email headers
= 1.3.3 =
- Fix: Improved support for multisite
= 1.3.2 =
- Fix: Child CSS class not matching parent
= 1.3.1 =
- Fix: Improved clarity of 'from' header
- Fix: Fixed issue with bulk deletion
= 1.3.0 =
- New: 'From' column now included in admin table
- New: Screen options have been added that allow you to pick which columns are visible along with the number of logs per page
- Fix: Fixed an issue adding an attachment in the 'new message' modal
- Fix: Fixed custom headers being rendered incorrectly in the 'new message' modal
- Fix: Fixed bug whereby tables were not dropped when deleting a multi-site
= 1.2.4 =
- New: Exact time (including timestamp) mail was sent can now be seen in the debug panel and when you hover over the value in the sent column of the table
- Improvement: Significantly reduced file size of plugin
- Fix: Fixed error when calling wp_mail and passing an attachment as a string
- Fix: Namespaced CSS
- Fix: Fixed incorrect time being rendered
- Fix: Sorting columns now works
= 1.2.3 =
- New: When the number of logs exceeds a specific value (currently set to 100) then a warning appears. Upon trying to do an 'export all' a dialog opens to batch the exporting
- Fix: Fixed an issue with interacting with messages beyond the first page
- Fix: Non-html emails now have their spacing rendered correctly
= 1.2.2 =
- New: Added new filtering system that allows only successful or failed messages to be seen
- New: Added 'export all' button
- Improvement: Removed carbon dependency, reducing the plugin size significantly from 322kb to 53kb (zipped)
- Improvement: Added basic caching system so repeated, identical database calls are avoided
= 1.2.1 =
- Fix: Hotfix for html emails not rendering correctly
= 1.2.0 =
- New: Added support for foreign characters
- New: Added link to settings page from the plugins page
- Fix: Fixed issue where non-html emails lost their line breaks
= 1.1.0 =
- Fix: 'Failed security check' message appearing when trying to perform any bulk actions
- Fix: Exporting with no attachments but with additional headers causes the wrong column to be populated
- Fix: HTML emails cause modal styling problem
- Fix: Long file names cause the content to spill over modal
- Fix: Admin notices makes 'New Message' button fall out of alignment