отправить электронное письмо с вложением, используя форму - PullRequest
0 голосов
/ 10 июля 2020

Я не могу понять, в чем может быть проблема: я заявляю, что код без части вложения работает

  function submit(Request $request)
 {

$this->validate($request, [
        'email' => 'required|email',
        'file' => 'mimes:pdf,doc,docx'
    ]);

  $data = array(
'name_data'  => $request->name,
'cognome_data' => $request->cognome,
'luogo_data'  => $request->luogo,
'date_data' => $request->date,
'telefono_data' => $request->telefono,
'email_data' => $request->email,
'citta_data' => $request->citta,
'provincia_data' => $request->provincia,
'studio_data' => $request->studio,
'lingua_data' => $request->lingua,
'livello_data' => $request->livello,
'lingua2_data' => $request->lingua2,
'livello2_data' => $request->livello2,
'file_data' => $request->file,
'agree_data' => $request->agree
 );

  Mail::send('mail', $data, function($message) use ($request,$data){
  $message->to('pipo@gmail.com', 'piooi')->subject('Send mail ' . $request->name);
  $message->from($request->email, $request->name);
  if ( isset($data['file_data']))

              {
                $message->attach($data['file_data']->getRealPath(), array(
                    'as'    => $data['file_data']->getClientOriginalName(),
                    'mime'  => $data['file_data']->getMimeType()));
                  }
         });
                  Session::flash('success', 'Mail spedita con sucesso');
 }
    }

Я помещаю часть рассматриваемой формы:

<form class="text-left form-email"action="#" enctype="multipart/form-data" method="POST">
            <div class="input-group">
             <div class="input-group-prepend">
               <span class="input-group-text" id="inputGroupFileAddon01">Curriculum Vitae:</span>
             </div>
             <div class="custom-file">
               <input type="file" class="custom-file-input" id="file" name="file"
                 aria-describedby="inputGroupFileAddon01">
               <label class="custom-file-label" for="inputGroupFile01">Seleziona il file</label>
             </div>
           </div>

ошибка, вызывающая саммит, следующая:

local.ERROR: вызов функции-члена getRealPath () на null {"исключение": "[объект] (Ошибка (код : 0):

1 Ответ

0 голосов
/ 10 июля 2020

Измените свою часть почты на это и посмотрите, работает ли она

Mail::send('mail', $data, function($message) use ($request,$data){
    $message->to('pipo@gmail.com', 'piooi')->subject('Send mail ' . $request->name);
    $message->from($request->email, $request->name);
    if($request->hasFile('file')){
        $message->attach($request->file->getRealPath(), array(
            'as'    => $request->file->getClientOriginalName(),
            'mime'  => $request->file->getMimeType())
        );
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...