mecachisenros / civicrm-ses

Other
7 stars 3 forks source link

How to debug? #7

Open narthur opened 4 years ago

narthur commented 4 years ago

I'm trying to get this set up and am having trouble. Amazon says my SNS HTTPS subscription was confirmed successfully, and my CloudWatch logs say that notifications are being delivered. But no new contacts are showing up as on hold, and no new bounces are showing up in CiviCRM.

What do I need to check to figure this out?

mecachisenros commented 4 years ago

@narthur difficult to tell without knowing how you've set it up, have you followed SES/SNS guide here?

If you are familiar with PHP and development in general I can suggest points where to look to figure out what is going on.

But perhaps it would be better to give a try/use the aws extension, better documented, has a UI to create Identities and Subscriptions from within Civi, and also supports click/open tracking through SNS.

narthur commented 4 years ago

Thanks for the tips!

Just found this repeated over and over in my logs, probably since this hook is getting hit a lot right now since I'm sending a large mailing:

[18-Dec-2019 12:46:01 America/New_York] PHP Warning: Invalid argument supplied for foreach() in /home/audiove9/public_html/comm/wp-content/plugins/civicrm/civicrm/ext/civicrm-ses-master/CRM/Ses/Page/Webhook.php on line 152

Line 152 is the foreach in this function:

/**
 * Get header by name.
 *
 * @param  string $name The header name to retrieve
 * @return string $value The header value
 */
protected function get_header_value( $name ) {
    foreach ( $this->message->mail->headers as $key => $header ) {
        if( $header->name == $name )
            return $header->value;
    }
}
narthur commented 4 years ago

Discovered that I needed to turn on "Include Original Headers" for domains and emails in AWS SES settings, and it seems to have fixed the issue. Could this be added to the setup instructions?

mattwire commented 4 years ago

@narthur Or see https://github.com/mecachisenros/civicrm-ses/pull/8 which works around this another way.