Почтовый штемпель — не удается прикрепить PDF и изображение из сохраненного пути в Symfony2

Я сохраняю файл изображения и PDF, который был загружен пользователем по одному из локальных путей. А теперь я хочу прикрепить эти файлы PDF и изображения при рассылке [Почтовое сообщение — Использование POSTMARK API]. Но это не привязанность.

Ниже приведен код, который я использую —

//Location where the file gets uploaded
$targetPath         =   $this->container->getParameter('upload_dir').'/Exibition/'.$fileName;
$imagePath          =   $this->container->getParameter('upload_dir').'/sk_booth_B17.jpg';

$message  = $this->get('postmark.message');
$message->addTo($custemail);
$message->addCC($userEmail);
$message->setSubject('My Subject Goes Here');
$message->setHTMLMessage($message_body);
$message->addAttachment($targetPath);
$message->addAttachment($imagePath);
$result = $message->send();

if($result){
// Do Something
}else{
// Do Something
}

Я сделал все конфигурации правильно. Я могу отправлять обычные текстовые сообщения без каких-либо вложений.

Когда я пытался прикрепить PDF или изображение, я получаю следующую ошибку —

Исправляемая фатальная ошибка: аргумент 1, передаваемый в MZ \ PostmarkBundle \ Postmark \ Message :: addAttachment (), должен быть экземпляром Symfony \ Component \ HttpFoundation \ File \ File, заданная строка вызывается в C: \ wamp \ www \ skerp4 \ src \ Skerp \ SalesBundle \ Controller \ ExhibitionCustomerController.php в строке 558 и определяется в C: \ wamp \ www \ skerp4 \ vendor \ mlpz \ postmark-bundle \ MZ \ PostmarkBundle \ Postmark \ Message.php строка 254

Как прикрепить локально сохраненный PDF или изображения. Куда я иду не так. Как реализовать вложения. Любая помощь будет оценена.

0

Решение

Предполагая, что ваши вложения не превышают 10 МБ, и предполагая, что это библиотека, к которой вы обращаетесь, Вы не используете addAttachment метод правильно, так как он принимает только Symfony File объект.

README под этим репо заявляет это в качестве примера:

$message  = $this->get('postmark.message');
$message->addTo('test@gmail.com', 'Test Test');
$message->setSubject('subject');
$message->setHTMLMessage('<b>email body</b>');
$message->addAttachment(new Symfony\Component\HttpFoundation\File\File(__FILE__));
$response = $message->send();

$message->addTo('test2@gmail.com', 'Test2 Test');
$message->setSubject('subject2');
$message->setHTMLMessage('<b>email body</b>');
$message->addAttachment(new Symfony\Component\HttpFoundation\File\File(__FILE__), 'usethisfilename.php', 'text/plain');
$response = $message->send();

Конструкция Symfony\Component\HttpFoundation\File\File принимает системный путь к файлу и соответственно генерирует правильный объект, поэтому в соответствии с этим выводом вы должны написать свой код следующим образом:

//Location where the file gets uploaded
$targetPath         =   $this->container->getParameter('upload_dir').'/Exibition/'.$fileName;
$imagePath          =   $this->container->getParameter('upload_dir').'/sk_booth_B17.jpg';

$message  = $this->get('postmark.message');
$message->addTo($custemail);
$message->addCC($userEmail);
$message->setSubject('My Subject Goes Here');
$message->setHTMLMessage($message_body);
$message->addAttachment(new Symfony\Component\HttpFoundation\File\File($targetPath), $fileName, 'application/pdf');
$message->addAttachment(new Symfony\Component\HttpFoundation\File\File($imagePath), 'sk_booth_B17.jpg', 'image/jpeg');
$result = $message->send();
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector