在laravel 5

时间:2015-05-06 14:34:17

标签: php email laravel mailgun

我试图将文件附加到laravel中的电子邮件,但无论我做什么,我都无法让它工作。它发送电子邮件但没有附件。不会给出任何错误。

public function sendCv($job)
{
    $cv = \App\File::where('id', Auth::user()->details->cv_id)->first();

    $cv_path = storage_path(). '/uploads/files/' . Auth::user()->id . "/" . $cv->identifier . "/" . $cv->name;

    $data = [];

    Mail::send('email.apply', $data, function ($message) use ($job, $cv_path) {
        $message->to('test@test.com')->from(Auth::user()->email)->subject('Application');
        $message->attach($cv_path);
    });

}

它还将我的电子邮件的'to'部分设置为mac mail中的'英国假期',我无法找出原因?

enter image description here

任何人都可以帮助并告知为什么这不起作用

编辑:

在 - >中添加第二个参数,以方法排序英国的假期,但关于我已经完成的故障排除。

我倾倒并且死了路径,以确保它是正确的,它是。我检查了文件是否存在,确实存在。我使路径不正确,然后给我一个错误(这表明它使用正确的路径)

使用相同的路径设置文件下载工作正常

    $cv_path = storage_path(). '/uploads/files/' . Auth::user()->id . "/" . $cv->identifier . "/" . $cv->name;

    $headers = array(
        'Content-Type: application/pdf',
        'Content-Type: application/octet-stream',
    );

    return Response::download($cv_path, $cv->name, $headers);

这样可以正常下载文件。

1 个答案:

答案 0 :(得分:3)

如果你想附加多个文件:

 $path =[];
$path[] = '../path/your/number/one/file';
$path[] = '../path/your/number/two/file';

$data_mail = Mail::send($tmp, array('msg'=>$msg), function($message) use ($path) {
     $message->from('xxx@xxx.com', $_POST['subj'] );
     $message->to($_POST['to'])->subject($_POST['subj'] );
     $size = sizeOf($path); //get the count of number of attachments 

        for( $i=0; $i<$size; $i++ ){ 
         $message->attach($path[$i]); // change i to $i

        }
  },true);