Я пытаюсь добавить файл Excel (.xlsx) в качестве вложения в электронное письмо, которое я отправляю через Mandrill API. Я использую CURL в php-файле для отправки электронного письма. Файл Excel называется Report.xlsx.
Вот ссылка в Mandrill API использовать CURL.
Вот ссылка другой вопрос, касающийся добавления путей к файлам.
Я получаю следующее сообщение об ошибке:
Ошибка синтаксического анализа PHP: синтаксическая ошибка, неожиданный путь (T_STRING) в
/var/www/html/newFolder/EmailAlertSystem/mailchimp-mandrill-api-php/UsageReport.php
(**** Какой мой каталог моего кода)
Это мой php-код для отправки электронного письма через Mandrill:
$uri = 'https://mandrillapp.com/api/1.0/messages/send.json';
$api_key = 'APIKEY';
$content = 'all the content I want to add';
$content_text = strip_tags($content);
$from = 'FROM';
$fromName = 'FROMNAME';
$to = 'TO';
$toName = 'TONAME';
$subject = 'SUBJECT';
$fullName = "FIRSTNAME LASTNAME";
$attachment = file_get_contents('Report.xlsx');
$attachment_encoded = base64_encode($attachment);$postString = '{
"key": "' . $api_key . '",
"message": {
"html": "' . $content . '",
"text": "' . $content_text . '",
"subject": "' . $subject . '",
"from_email": "' . $from . '",
"from_name": "' . $fromName . '",
"to": [
{
"email": "' . $to . '",
"name": "' . $fullName . '"}
],
"track_opens": true,
"track_clicks": true,
"auto_text": true,
"url_strip_qs": true,
"preserve_recipients": true,
"attachments" : array(
array(
'path' => $attachment_encoded,
'type' => "application/xlsx",
'name' => 'Report.xlsx',
)
)},
"async": false
}';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $uri);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
//this is the executable curl statement that will actually send the email
$result = curl_exec($ch);
Любая помощь будет принята с благодарностью !!! Пожалуйста, дайте мне знать, если я был неясен и что я делаю неправильно. Заранее спасибо!
Ошибка, кажется, относится к этой части
"attachments" : array(
array(
'path' => $attachment_encoded,
'type' => "application/xlsx",
'name' => 'Report.xlsx',
)
)
Прямо там, строка заканчивается до path
и затем перезапущен, это синтаксическая ошибка.
Что-то вроде,
"attachments" : array(
array(
\'path\' => $attachment_encoded,
\'type\' => "application/xlsx",
\'name\' => \'Report.xlsx\',
)
)
то есть экранирование кавычек должно исправить это, но … остальная часть этой строки выглядит как JSON. Предполагается, что часть вложений имеет формат PHP-подобного массива? Может быть, хочу перепроверить.
Других решений пока нет …