PHP, проблема Swift-mailer - PullRequest
       4

PHP, проблема Swift-mailer

5 голосов
/ 25 декабря 2010

Когда я нажимаю кнопку «Отправить» на своей странице контактов, пытаясь отправить форму, использующую swift-mailer, я получаю следующее:

Предупреждение: fopen (uploads /) [function.fopen]:не удалось открыть поток: нет такого файла или каталога в /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/ByteStream/FileByteStream.php в строке 131

Fatal error: Uncaught exception 'Swift_IoException' with message 'Unable to open file for reading [uploads/]' in /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/ByteStream/FileByteStream.php:133

Stack trace: 
#0 /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/ByteStream/FileByteStream.php(77): Swift_ByteStream_FileByteStream->_getReadHandle()
#1 /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/Mime/SimpleMimeEntity.php(660): Swift_ByteStream_FileByteStream->read(8192) 
#2 /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/Mime/SimpleMimeEntity.php(337): Swift_Mime_SimpleMimeEntity->_readStream(Object(Swift_ByteStream_FileByteStream)) 
#3 /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/Mime/SimpleMimeEntity.php(448): Swift_Mime_SimpleMimeEntity->getBody()
#4 /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/Mime/SimpleMimeEntity.php(463): Swift_Mime_SimpleMimeEntity->toString()
#5 /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/ in /home/polycys2/public_html/html/swift-mailer/lib/classes/Swift/ByteStream/FileByteStream.php on line 133

Полный путь существует на сервере, хотя в сообщении об ошибке указано «нет такого файла или каталога.В чем может быть проблема?Спасибо всем заранее!И счастливого Рождества!

Ответы [ 4 ]

9 голосов
/ 25 декабря 2010

Вам необходимо указать полный путь к uploads, а не к реальному пути, потому что он будет интерпретироваться как относящийся к файлу класса, который пытается открыть ваше вложение.

Попробуйте использовать realpath перед прохождением пути к Swift.

$ path = realpath ('uploads /');

1 голос
/ 11 апреля 2019

Это работает для меня:

Controller.php

$mail = Yii::$app->mailer->compose('@app/mail/embed-mail',
[
     'term' => Url::to('@webroot/images/term.png'),
     'logo' => Url::to('@webroot/images/LOGO.jpg')
]

И embed-mail.php

<img src="<?= $message->embed($terminal); ?>"/>
<img src="<?= $message->embed($logo); ?>"/>

Я надеюсь, что это работает для вас

1 голос
/ 25 декабря 2010

Спасибо всем за помощь! Проблема заключалась в моей рассеянности - я забыл создать там каталог для загрузки. Теперь работает нормально. Спасибо!

0 голосов
/ 25 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...