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

0

Я сохраняю изображение и файл PDF, который был загружен пользователем на одном из локальных путей. И теперь я хочу прикрепить эти файлы PDF и Image при рассылке [Mailing - Using 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 или изображение, я получаю следующую ошибку:

Catchable Fatal Error: аргумент 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 или Images.Where я иду не так. Как реализовать вложения. Любая помощь будет назначена.

Теги:
email
email-attachments
postmark

1 ответ

0
Лучший ответ

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

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

$message  = $this->get('postmark.message');
$message->addTo('[email protected]', '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('[email protected]', '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
    Спасибо большое, приятель ... это сработало для меня

Ещё вопросы

Сообщество Overcoder
Наверх
Меню