Я хочу отправить электронное письмо с вложением в формате pdf под названием «предварительная квалификация», которое находится в моем общедоступном каталоге. Как я могу получить к нему доступ?
Это то, что у меня есть в моем методе магазина:
Mail :: send (new OfferEmailUser ($ request) );
И OfferEmailUser выглядит так:
public $ request; public function __construct ($ request) {// $ this-> request = $ request; $ this-> to ($ request-> email, $ request-> name); $ this-> subject ('Уведомление по электронной почте о предложении');} public function build () {return $ this-> view ('emails.offeremailuser');}
Как jelhan упомянул в своем комментарии, здесь должны помочь документы Laravel по вложению почты, например
return $ this-> view ('emails.offeremailuser');
становится
return $ this-> view ('emails.offeremailuser') -> attach ('/path/to/file');
Вы также можете быть интересно, как указать путь к вашему файлу в общей папке. В Laravel для этого тоже есть вспомогательная функция. Окончательный результат может выглядеть примерно так:
return $ this-> view ('emails.offeremailuser') -> attach (public_path ('pre-qualification.pdf')) ;
-
цените это. Основная проблема, я думаю, заключалась во вспомогательной функции для доступа к общедоступному пути. Теперь это работает. И если вы не против пояснить, в чем разница между тем, что вы отправили, по сравнению с ответом Гаурав Вагела, который он добавляет в массив? Я видел это в документации, но нет объяснения разницы. — пользовательский агент 25 авг., 18:49
-
Массив в основном дает вам больше контроля над тем, как вложение обрабатывается и представляется — параметр as позволяет вам переопределить имя файла и назвать его по-другому, а mime предоставляет соответствующие службы подсказку в mime-типе файла. Если вас устраивают значения по умолчанию, то массив не требуется. — Rich 26 авг., 18:25
Как jelhan упомянул в своем комментарии, здесь должны помочь вложения Laravel, например
return $ this-> view ('emails.offeremailuser');
становится
return $ this-> view ('электронные письма. offeremailuser ') -> attach ('/path/to/file ');
Вам также может быть интересно, как указать путь к вашему файлу в общей папке. В Laravel для этого тоже есть вспомогательная функция. Окончательный результат может выглядеть примерно так:
return $ this-> view ('emails.offeremailuser') -> attach (public_path ('pre-qualification.pdf')) ;
Попробуйте это
публичная функция __construct ($ request) {//$ this-> request = $ request; $ this-> to ($ request-> email, $ request-> name); $ this-> subject ('Уведомление по электронной почте о предложении'); $ this-> attach ('path_to_pdf_file', array ('as' => 'pdf-report.zip', 'mime' => 'application/pdf'));}

Попробуйте это
публичная функция __construct ($ request) {//$ this -> запрос = $ запрос; $ this-> to ($ request-> email, $ request-> name); $ this-> subject ('Уведомление по электронной почте о предложении'); $ this-> attach ('path_to_pdf_file', array ('as' => 'pdf-report.zip', 'mime' => 'application/pdf'));}