2017-07-09 127 views
0

我試着用laravel SMTP發送郵件,如何在laravel中發送電子郵件時附加文件?

Mail::send('mail', $data, function($message) use ($request){ 
    $message->to($request->input('email'), 'Than Htut')->subject 
     ($request->input('subject')); 
    $message->attach($request->input('resume')); 
    $message->from('[email protected]','My Name'); 
    }); 
    echo "HTML Email Sent. Check your inbox."; 

問題出這樣

Swift_IoException 無法打開文件進行讀取

但是,如果使用像attachData此

Mail::send('mail', $data, function($message) use ($request){ 
    $message->to($request->input('email'), 'Than Htut')->subject 
     ($request->input('subject')); 
    $message->attachData($request->input('resume'), "haha.pdf"); 
    $message->from('[email protected]','My Name'); 
    }); 
    echo "HTML Email Sent. Check your inbox."; 

它的工作,但不能打開文件。 , enter image description here 這裏是我的fronend部分,

<form class="uk-form-stacked" action="{{ url('jobseekers/send') }}" method="post" id="cv_mail_data"> 
        <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
        <input type="hidden" name="cv_no" value="{{ $jobseekers->id }}"> 




    <input type="text" placeholder="To" name="email" class="md-input" multiple> 
    <input type="text" placeholder="To" name="subject" class="md-input" multiple> 
    <input type="file" name="resume" accept="application/pdf,application/vnd.ms-excel" /> 



          <div class="uk-grid" data-uk-grid-margin> 
           <div class="uk-width-medium-1-1 parsley-row"> 
            <textarea id="wysiwyg_tinymce" name="cover_letter" cols="30" 
               rows="20"></textarea> 
           </div> 
          </div> 
          <button type="submit" class="btn btn-primary"> 
           Create 
          </button> 

請指導我,謝謝。

回答

1

首先,您的表單中的屬性enctype="multipart/form-data"在哪裏? 第二,爲了檢索laravel上的文件,您可以使用文件方法$request->file('your-file');

+0

我添加了enctype並嘗試了$ message-> attachData($ request-> file('resume'),'invoice.pdf');像這樣,它仍然無法打開。任何想法先生,無論如何,非常感謝你的答案。 –

+0

嗯,我從來沒有試過直接從表單發送文件到電子郵件,我不認爲你可以直接發送輸入作爲參數,也許你可以嘗試先保存在服務器上,然後發送郵件的路徑保存的文件。 –

+0

$ file = $ request-> file('resume'); $ file-> move('destination-path','file-name');然後在附加數據上發送文件的路徑。 –