Laravel: прикрепить удаленный файл к электронной почте

У меня есть система, которая позволяет пользователям загружать свои вложения локально, чтобы отправить их позже. и у меня есть другой сервер, который отправляет электронные письма в соответствии с заданиями в базе данных (2 разных сервера)Вот оригинальный код, который отправляет электронную почту в laravel:

$path = "/home/example.com/public_html/storage/users/id/$userId/uploads/attachments/";


        Log::info('Mail attachments are: '.$this->mailAttachments);

        if($this->mailAttachments) {
            Log::info('we have attachments');

            foreach(json_decode($this->mailAttachments) as $item){
                $toAttach = $path.$item->name;
                $markdown->attach($toAttach, [
                    'as' => $item->name,
                    'mime' => $item->type
                ]);
            }
        }else{
            Log::info('No attachments here');
        }

Теперь у меня проблема с прикреплением файлов с сервера № 1 на сервере № 2, вот что я попробовал:

  1. Я пытался прикрепить файлы с URL, значит, вместо отправки полного пути

/home/example.com/public_html/storage/users/id/$userId/uploads/attachments/test.jpg

(что невозможно, потому что это другой сервер с другим корнем) Я изменил его на URL ( https://example.com/attachment/test.jpg), он не работает и возвращает ошибку:

Swift_IoException: невозможно открыть файл для чтения

  1. Я попытался сделать это с fileGetContent, как показано ниже:

    //because its ssl Im adding this:
    $arrContextOptions=array(
    "ssl"=>array(
    "verify_peer"=>false,
    "verify_peer_name"=>false));
    
    $toAttach = file_get_contents($path.$item->name, false, stream_context_create($arrContextOptions));
    //Before I had: $toAttach = $path.$item->name;
    
    $markdown->attachData($toAttach, [
    'as' => $item->name,
    'mime' => $item->type
    ]);
    

Но здесь, это возвращает мне другую ошибку:

ErrorException: preg_match () ожидает, что параметр 2 будет строкой, массив указан в /...../vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mime/Headers/ParameterizedHeader.php:189

Вы можете мне помочь? кто-нибудь пробовал прикреплять файлы удаленно? может поделиться папкой с сервера как нибудь?

Спасибо!

0 ответов

Другие вопросы по тегам