Obtain a record of all emails sent by Gravity Forms?

Hi all!

We have someone who used the “save and complete later” function of a form on our site, and claims the email with the link to continue never arrived. Is there a way to look at a record of emails that GF has sent via wp_mail()? I have looked around and see some plugins I can add that will give me this visibility, but I wasn’t sure if the direct implication of those was that there was 100% no way to access that record any other way through GF and Wordpress as they exist now (without any plugin displaying automatic email records).

Thanks!

It is logged in the Gravity Forms Core log if you have logging enabled. It looks like this:

2020-03-13 9:07:33.319200 - DEBUG --> GFFormDisplay::process_send_resume_link(): Processing notifications for form_save_email_requested event. 
2020-03-13 9:07:33.319523 - DEBUG --> GFCommon::send_notification(): Starting to process notification (#5e614fa8895d5 - Save and Continue Email). 
2020-03-13 9:07:33.319587 - DEBUG --> gform_notification: change_notification_format() running. 
2020-03-13 9:07:33.320697 - DEBUG --> GFCommon::send_email(): Sending email via wp_mail(). 
2020-03-13 9:07:33.320760 - DEBUG --> Array
(
    [to] => chrishajer@gmail.com
    [subject] => Link to continue 4 v 4 - 2017 Registration Form - 
    [message] => <html>
	<head>
		<title>Link to continue 4 v 4 - 2017 Registration Form - </title>
	</head>
	<body>
		Thank you for saving 4 v 4 - 2017 Registration Form - . Please use the unique link below to return to the form from any computer. <br /><br /> <a href="[SITE REMOVED]/?gf_page=preview&#038;id=514&#038;gf_token=547fb81d0fa542669f0a7337a1aaab88" class='resume_form_link'>[SITE REMOVED]/?gf_page=preview&#038;id=514&#038;gf_token=547fb81d0fa542669f0a7337a1aaab88</a> <br /><br /> Remember that the link will expire after 30 days so please return via the provided link to complete your form submission.
	</body>
</html>
    [headers] => Array
        (
            [From] => From: "support@chrishajer.com" <support@chrishajer.com>
            [Content-type] => Content-type: text/html; charset=UTF-8
        )

    [attachments] => Array
        (
        )

    [abort_email] => 
)
 
2020-03-13 9:07:33.409097 - DEBUG --> GFCommon::send_email(): Result from wp_mail(): 1 
2020-03-13 9:07:33.409224 - DEBUG --> GFCommon::send_email(): WordPress successfully passed the notification email (#5e614fa8895d5 - Save and Continue Email) to the sending server. 

I’m not sure what the plugins do differently (maybe send an additional notification or log that somewhere else)?

Thanks! So if we did not have logging enabled, no dice then?

(We typically don’t enable logging if there’s not a specific error we are trying to debug. Are we wrong about that being best practice? Should we have it enabled always?)

I would not say that having logging enabled is a best practice. The log files can be huge and can contain information you don’t want public. I would not leave logging active for long. I was just mentioning that it’s captured in the log.

If logging was not enabled, then there is no record of the notification being sent. You may be able to customize something for future notifications, but it would not help you find out about any in the past. I’m curious what the other plugins are that you have found, and what they do.

You could probably create your own log of all notifications sent by Gravity Forms (or just Save and Continue emails if you wanted to do that) using the gform_pre_send_email filter:

That is run for every notification that is sent. You could create your own log or email a note to yourself if you wanted to.

Hey Chris,

Thank you so much!! Understood on your first reply. I think I was looking at https://wordpress.org/plugins/email-log/, which now that I think about it I’m not sure if that would include GF emails or only do WP emails like password resets and such. I had not chased it too far. I will look into the option you suggested - thanks again!

Let us know what you come up with!

Personally, I’d setup and configure WordPress to use a dedicated SMTP provider like Mailgun, SendJet, or SendinBlue which will keep a log of all email activity passing through its service. It’s a great way to get emails landing in inboxes and keeping track of problems that might occur with mail delivery.

1 Like