Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день!
Пытаюсь отправлять файлы в письме, а вот приходят они ко мне (на мак) с именами из кракозябров...
А вот что получается в письме utf-8''%D0%BF%D1%80%D0%B5%D0%B7%D0%B8%D0%B4%D0%B5%D0%BD%D1%82.pdf
Mail::html($msg, function($mail)
use($msg, $title, $email, $mailList, $message)
{
foreach(Content::uFile()->get($message, 'files')->files() as $file) {
$mail->attach(Storage::disk($file->disk)->getAdapter()->getPathPrefix().'/'.$file->path.$file->file, [
'as' => $file->orig_name,
]);
}
$mail->to($email)->subject($title);
$mail->from(Helpers::dataIsSetValue($mailList, 'email_from'), Helpers::dataIsSetValue($mailList, 'from_name'));
});
Изменено Kiran (15.03.2018 13:05:00)
Не в сети
Смотрю другие письма, где с аттачем все хорошо, там имя файла по другому кодируется filename="=?UTF-8?B?0JLQvdGD0YLRgNC10L3QvdGP0Y8uanBn?=" . А так же сам текст сообщения тоже закодирован, а у меня чистый хтмл идет
Не в сети
Причем время от времени система тупо показывает нормальные имена, а потом у тех же писем вновь кракозябры. явно какой то косяк есть. На планшете всегда кракозябры. Так же поступили сведения, что и gmail так же криво. Уже всю голову сломал, незнаю как решить...
Не в сети
Смотрю другие письма, где с аттачем все хорошо, там имя файла по другому кодируется filename="=?UTF-8?B?0JLQvdGD0YLRgNC10L3QvdGP0Y8uanBn?="
Это делается через base64_encode: https://stackoverflow.com/a/27436115/272885
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Это делается через base64_encode:
Все круто, да я тут потестировал чуток, даже письма отравленные с самого мака на себя же приходят с корявой кодировкой. В Том же яндексе сделано вот так filename="=?UTF-8?B?0JLQvdGD0YLRgNC10L3QvdGP0Y8uanBn?=" и на мак и на планшет приходит все классно.
Теперь вопрос, как я могу подменить метод attach и сделать свой функционал, для того что бы по другому формировать заголовки?
Не в сети
Ты так поблагодарил меня или же сказал, что не знаешь как это применить? Непонятно.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
P.S. Слово UTF-8 кагбе намекает, что далее идет строка в UTF-8. Если внезапно™ там другая кодировка, то будет плохо, конечно. Не мешает проверить этот момент один раз чтобы знать наверняка.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
P.S. Слово UTF-8 кагбе намекает, что далее идет строка в UTF-8. Если внезапно™ там другая кодировка, то будет плохо, конечно. Не мешает проверить этот момент один раз чтобы знать наверняка.
Да проблема в том, что на маке почтовик сам себе отправляя получает корявую кодировку. А если например с того же яндекса то все классно получает, но там по другому выглядит сама строка кодирования. я так понял что бы это применить надо писать свой функционал вместо того, что есть в Ларавеле. В итоге в рамках этого проекта решили писать в транслите имена файлов, тогда все хорошо.
Но в идеале сделать что было все хорошо, а вот как не сильно мучаясь это реализовать...
Не в сети
я так понял что бы это применить надо писать свой функционал вместо того, что есть в Ларавеле.
неправильно понял. достаточно имя указать какое тебе надо при вызове метода attach() или attachData().
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Страницы 1