I am trying to send List-unsubscribe header while sending email using sendgrid Mail object with PHP. https://github.com/sendgrid/sendgrid-php
Somehow its not showing unsubscribe link in email header. Here is my sendgrid email object which I am passing to send the email.
SendGrid\Mail\Mail Object ( [from:SendGrid\Mail\Mail:private] => SendGrid\Mail\From Object ( [name:SendGrid\Mail\EmailAddress:private] => Test User [email:SendGrid\Mail\EmailAddress:private] => [email protected] [substitutions:SendGrid\Mail\EmailAddress:private] => [subject:SendGrid\Mail\EmailAddress:private] => )
[subject:SendGrid\Mail\Mail:private] => SendGrid\Mail\Subject Object
(
[subject:SendGrid\Mail\Subject:private] => Test Subject
)
[contents:SendGrid\Mail\Mail:private] => Array
(
[0] => SendGrid\Mail\Content Object
(
[type:SendGrid\Mail\Content:private] => text/html
[value:SendGrid\Mail\Content:private] =>
Test Email )
)
[attachments:SendGrid\Mail\Mail:private] =>
[template_id:SendGrid\Mail\Mail:private] =>
[sections:SendGrid\Mail\Mail:private] =>
[headers:SendGrid\Mail\Mail:private] =>
[categories:SendGrid\Mail\Mail:private] =>
[custom_args:SendGrid\Mail\Mail:private] =>
[substitutions:SendGrid\Mail\Mail:private] =>
[send_at:SendGrid\Mail\Mail:private] =>
[batch_id:SendGrid\Mail\Mail:private] =>
[asm:SendGrid\Mail\Mail:private] =>
[ip_pool_name:SendGrid\Mail\Mail:private] =>
[mail_settings:SendGrid\Mail\Mail:private] =>
[tracking_settings:SendGrid\Mail\Mail:private] =>
[reply_to:SendGrid\Mail\Mail:private] =>
[personalization:SendGrid\Mail\Mail:private] => Array
(
[0] => SendGrid\Mail\Personalization Object
(
[tos:SendGrid\Mail\Personalization:private] => Array
(
[0] => SendGrid\Mail\To Object
(
[name:SendGrid\Mail\EmailAddress:private] => Test User
[email:SendGrid\Mail\EmailAddress:private] => [email protected]
[substitutions:SendGrid\Mail\EmailAddress:private] =>
[subject:SendGrid\Mail\EmailAddress:private] =>
)
)
[ccs:SendGrid\Mail\Personalization:private] =>
[bccs:SendGrid\Mail\Personalization:private] =>
[subject:SendGrid\Mail\Personalization:private] =>
[headers:SendGrid\Mail\Personalization:private] => Array
(
[List-Unsubscribe] => mailto:[email protected], unsubscribe_url
)
[substitutions:SendGrid\Mail\Personalization:private] =>
[dynamic_template_data:SendGrid\Mail\Personalization:private] =>
[has_dynamic_template:SendGrid\Mail\Personalization:private] =>
[custom_args:SendGrid\Mail\Personalization:private] =>
[send_at:SendGrid\Mail\Personalization:private] =>
)
)
)
This is my php code to send the email:
$email = new \SendGrid\Mail\Mail();
$email->setFrom("from_email_address", "from name");
$email->setSubject("subject");
$email->addTo("to address", "to name");
$email->addContent("text/html", "html message");
$email->addContent("text/plain", "plain text message");
$email->addHeader('List-Unsubscribe', 'mailto:[email protected], unsubscribe_url');
$sendgrid = new \SendGrid(SENDGRID_API_KEY);
try {
$response = $sendgrid->send($email);
$responseArr = array();
$responseArr = $response->headers();
echo "<pre>";
print_r($email); exit;
} catch (Exception $e) {
echo 'Caught exception: '. $e->getMessage() ."\n";
}
Can anyone suggest what I am making wrong here or anything is missing?
Thanks