我正在尝试使用电子邮件附加图片。我尝试了很多方法。但我失败了。没有附带电子邮件的文件。我也试过嵌入图像,但也没用。请帮我找出问题。
Mail::send('emails.freetrial', $data, function($message) use ($data){
$img = Freetrialsimage::where('freetrials_id', '=', $data['id']);
$message->from('hello123@gmail.com');
$message->to('text123@gmail.com');
$message->subject('Free Trial');
foreach ($img as $attach)
{
$message->attachData($img->file_path, $img->file_name);;
}
});
答案 0 :(得分:2)
如果要按路径附加文件 - 使用attach()
方法,如果您有文件的原始内容(二进制图像数据) - 则使用attachData()
。在您的示例中,attach()
看起来更合适。
来自文档
将文件附加到邮件时,您还可以通过将数组作为第二个参数传递给attach方法来指定显示名称和/或MIME类型:
$message->attach($pathToFile, ['as' => $display, 'mime' => $mime]);
关于attachData()方法
attachData方法可用于附加原始字符串作为附件。例如,如果您在内存中生成了PDF并希望将其附加到电子邮件而不将其写入磁盘,则可以使用此方法:
$message->attachData($pdf, 'invoice.pdf');