Tuesday, December 21, 2021

laravel test email with attachment

 

<?php
namespace App\Http\Controllers;
use App\Mail\TestEmail;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;
use Illuminate\Support\Facades\Mail;
class EmailController extends Controller
{
public function list()
{
$emails = \App\Models\TestEmail::all();
$results = [];
foreach ($emails as $key => $email) {
$results[$key]['id'] = $email->id;
$results[$key]['email'] = $email->email;
$results[$key]['subject'] = $email->subject;
$results[$key]['body'] = $email->body;
$results[$key]['body'] = $email->body;
$results[$key]['attachments'] = $email->attachments ? asset('storage/attachments/' . $email->attachments) : '';
}
return $results;
}
public function send(Request $request): JsonResponse
{
$fields = $request->validate([
'email' => 'required|string|email',
'subject' => 'required|string',
'body' => 'required|string'
]);
try {
// If any attachment found
$attachments = '';
if ($request->file('attachments')) {
$attachments = time() . '_' . $request->file('attachments')->getClientOriginalName();
$request->file('attachments')->move(storage_path('app/public/attachments/'), $attachments);
}
$testEmail = \App\Models\TestEmail::create([
'email' => $fields['email'],
'subject' => $fields['subject'],
'body' => $fields['body'],
'attachments' => $attachments,
]);
Mail::to($testEmail->email)->send(new TestEmail($testEmail));
} catch (\Exception $e) {
return response()->json(['status' => 'error', 'message' => 'error on mail sending ' . $e->getMessage()]);
}
return response()->json(['status' => 'success', 'message' => 'Mail sent successfully']);
}
}

Monday, December 20, 2021

git personal access token

From August 13, 2021, GitHub is no longer accepting account passwords when authenticating Git operations. You need to add a PAT (Personal Access Token) instead, and you can follow the below method to add a PAT on your system.

Create Personal Access Token on GitHub

From your GitHub account, go to Settings => Developer Settings => Personal Access Token => Generate New Token (Give your password) => Fillup the form => click Generate token => Copy the generated Token, it will be something like ghp_sFhFsSHhTzMDreGRLjmks4Tzuzgthdvfsrta

Now follow below method based on your machine:

For Windows OS ⤴

Go to Credential Manager from Control Panel => Windows Credentials => find git:https://github.com => Edit => On Password replace with with your GitHub Personal Access Token => You are Done

If you don’t find git:https://github.com => Click on Add a generic credential => Internet address will be git:https://github.com and you need to type in your username and password will be your GitHub Personal Access Token => Click Ok and you are done


For macOS ⤴

Click on the Spotlight icon (magnifying glass) on the right side of the menu bar. Type Keychain access then press the Enter key to launch the app => In Keychain Access, search for github.com => Find the internet password entry for github.com => Edit or delete the entry accordingly => You are done


For a Linux-based OS ⤴

For Linux, you need to configure the local GIT client with a username and email address,

$ git config --global user.name "your_github_username"
$ git config --global user.email "your_github_email"
$ git config -l

Once GIT is configured, we can begin using it to access GitHub. Example:

$ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
> Cloning into `Spoon-Knife`...
$ Username for 'https://github.com' : username
$ Password for 'https://github.com' : give your personal access token here

Now cache the given record in your computer to remembers the token:

$ git config --global credential.helper cache

If needed, anytime you can delete the cache record by:

$ git config --global --unset credential.helper
$ git config --system --unset credential.helper

Now try to pull with -v to verify

$ git pull -v

Linux/Debian (Clone as follows):

git clone https://<tokenhere>@github.com/<user>/<repo>.git

For PhpStorm

If you are using PhpStorm, go to menu Git => pull and select authentication via Personal Access Token. Enter your PAT it will allow you to pull/push the changes.