Skip to content

Instantly share code, notes, and snippets.

@nutch31
Created May 16, 2019 11:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nutch31/b26033e6c1102797db58a9be2679e581 to your computer and use it in GitHub Desktop.
Save nutch31/b26033e6c1102797db58a9be2679e581 to your computer and use it in GitHub Desktop.
public function createFormalEmail(requestCreateFormalEmail $request)
{
Mail::send('email.sendCreateFormalEmail', [
"name" => $request->get('name'),
"subject_name" => $request->get('subject_name'),
"content" => $request->get('content')
], function ($message) use ($request){
$message->from($request->get('email_from'));
$message->to($request->get('email'));
if(!empty($request->get('email_cc')))
{
$message->cc($request->get('email_cc'));
}
if(!empty($request->get('email_bcc')))
{
$message->bcc($request->get('email_bcc'));
}
if(!empty($request->file('file')))
{
$file = $request->file('file');
$message->attach(
$file->getRealPath() ,
[
'as' => $request->get('file_name'),
'mime' => $file->getMimeType()
]
);
}
$message->getHeaders()
->addTextHeader('Content-Type', 'text/plain; charset=utf-8');
$message->subject($request->get('subject_name'));
});
/*
$request = new Request([
'name' => $request->get('name'),
'email_from' => $request->get('email_from'),
'email' => $request->get('email'),
'email_cc' => $request->get('email_cc'),
'email_bcc' => $request->get('email_bcc'),
'subject_name' => $request->get('subject_name'),
'content' => $request->get('content'),
'file_name' => $request->get('file_name'),
'file' => $request->file('file')->getRealPath(),
'file_mime_type' => $request->file('file')->getMimeType(),
]);
*/
//dd($request);
//dispatch(new CreateFormalEmail($request));
$html = view('email.sendCreateFormalEmail', [
"name" => $request->get('name'),
"subject_name" => $request->get('subject_name'),
"content" => $request->get('content')
]);
if(!empty($request->file('file')))
{
$random = str_random(5);
$file_name = $random.'_'.$request->get('file_name');
$request->file('file')->move(public_path().'/uploads/', $file_name);
}
FormalEmail::create([
'name' => $request->get('name'),
'email_from' => $request->get('email_from'),
'email' => json_encode($request->get('email')),
'email_cc' => json_encode($request->get('email_cc')),
'email_bcc' => json_encode($request->get('email_bcc')),
'subject_name' => $request->get('subject_name'),
'content' => $request->get('content'),
'file' => public_path().'/uploads/',
'file_name' => $file_name,
'body_mail' => $html,
'status' => 1
]);
return response()->json([
'message' => 'Success'
], 200);
}
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Mail;
class CreateFormalEmail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $name;
public $email_from;
public $email;
public $email_cc;
public $email_bcc;
public $subject_name;
public $content;
public $file;
public $file_name;
public $file_mime_type;
public $timeout = 120;
public $tries = 3;
/**
* CreateFormalEmail constructor.
* @param $request
*/
public function __construct($request)
{
//
$this->name = $request->get('name');
$this->email_from = $request->get('email_from');
$this->email = $request->get('email');
$this->email_cc = $request->get('email_cc');
$this->email_bcc = $request->get('email_bcc');
$this->subject_name = $request->get('subject_name');
$this->content = $request->get('content');
$this->file = $request->get('file');
$this->file_name = $request->get('file_name');
$this->file_mime_type = $request->get('file_mime_type');
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$data = [
'name' => $this->name,
'email_from' => $this->email_from,
'email' => $this->email,
'email_cc' => $this->email_cc,
'email_bcc' => $this->email_bcc,
'subject_name' => $this->subject_name,
'content' => $this->content,
'file' => $this->file,
'file_name' => $this->file_name,
'file_mime_type' => $this->file_mime_type
];
Mail::send('email.sendCreateFormalEmail', [
"name" => $data['name'],
"subject_name" => $data['subject_name'],
"content" => $data['content']
], function ($message) use ($data){
$message->from($data['email_from']);
$message->to($data['email']);
if(!empty($data['email_cc']))
{
$message->cc($data['email_cc']);
}
if(!empty($data['email_bcc']))
{
$message->bcc($data['email_bcc']);
}
if(!empty($data['file']))
{
$message->attach(
$data['file'] ,
[
'as' => $data['file_name']
]
);
}
$message->subject($data['subject_name']);
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment