-
Notifications
You must be signed in to change notification settings - Fork 0
/
OneTimeSenderController.php
57 lines (48 loc) · 1.74 KB
/
OneTimeSenderController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
namespace App\Http\Controllers;
use App\Imports\ImportData;
use App\Mail\SendMail;
use App\Models\OneTimeSender;
use App\Models\TempMailAddress;
use Illuminate\Http\Request;
use Illuminate\Support\Sleep;
use Maatwebsite\Excel\Facades\Excel;
use Mail;
class OneTimeSenderController extends Controller
{
public function import(Request $request)
{
$request->validate([
'file' => 'required|file',
'subject' => 'required',
'body' => 'required',
], [
'file.required' => 'Please upload a file.',
'file.file' => 'The uploaded file is not valid.',
'subject.required' => 'Please enter a subject.',
'body.required' => 'Please enter the body of the email.',
]);
if (Excel::import(new ImportData, request()->file('file'))) {
OneTimeSender::create([
'filename' => $request->file->getClientOriginalName(),
'total_email_address' => TempMailAddress::all()->count(),
]);
$total_send = TempMailAddress::all()->count();
$mailData = [
'subject' => $request->subject,
'body' => $request->body,
];
$getEmailAddress = TempMailAddress::all('email');
foreach ($getEmailAddress as $value) {
Mail::to($value->email)->send(new SendMail($mailData));
Sleep::for(10)->milliseconds();
}
TempMailAddress::truncate();
return back()->with([
'message' => 'Success! Email Sent Succesfully. Total Sent: ' . $total_send,
]);
} else {
return back()->with('error', 'Failed! Something went wrong.');
}
}
}