Use mailtrap instead of mailjet
This commit is contained in:
parent
99873d9d1d
commit
2d5f1c13fd
7 changed files with 1017 additions and 463 deletions
|
|
@ -6,8 +6,10 @@
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Http\RedirectResponse;
|
use Illuminate\Http\RedirectResponse;
|
||||||
use Illuminate\Contracts\View\View;
|
use Illuminate\Contracts\View\View;
|
||||||
use Illuminate\Support\Facades\Http;
|
|
||||||
use Illuminate\Validation\ValidationException;
|
use Illuminate\Validation\ValidationException;
|
||||||
|
use Mailtrap\MailtrapClient;
|
||||||
|
use Mailtrap\Mime\MailtrapEmail;
|
||||||
|
use Symfony\Component\Mime\Address;
|
||||||
use UAParser\Parser;
|
use UAParser\Parser;
|
||||||
|
|
||||||
class GuestbookController extends Controller {
|
class GuestbookController extends Controller {
|
||||||
|
|
@ -29,31 +31,23 @@ public function show(): View {
|
||||||
*/
|
*/
|
||||||
public function addEntry(Request $request): RedirectResponse {
|
public function addEntry(Request $request): RedirectResponse {
|
||||||
$newEntry = GuestbookEntry::create($request);
|
$newEntry = GuestbookEntry::create($request);
|
||||||
$response = Http::withBasicAuth(config('services.mailjet.key'), config('services.mailjet.secret'))->post('https://api.mailjet.com/v3.1/send', [
|
$email = (new MailtrapEmail())
|
||||||
'Messages' => [
|
->from(new Address("wah@wah.moe", "wah dot moe"))
|
||||||
[
|
->to(new Address("roscoe@wah.moe", "Roscoe D. Wah"))
|
||||||
'From' => [
|
->subject("New Guestbook Entry!")
|
||||||
'Email' => 'wah@wah.moe',
|
->html('
|
||||||
'Name' => 'wah dot moe'
|
|
||||||
],
|
|
||||||
'To' => [
|
|
||||||
[
|
|
||||||
'Email' => 'roscoe@wah.moe',
|
|
||||||
'Name' => 'Roscoe D. Wah'
|
|
||||||
]
|
|
||||||
],
|
|
||||||
'Subject' => 'New Guestbook Entry!',
|
|
||||||
'HtmlPart' => '
|
|
||||||
<style> td { padding: 5px } </style>
|
<style> td { padding: 5px } </style>
|
||||||
<table border="1">
|
<table border="1">
|
||||||
<tr><td><b>Name:</b></td><td>'.htmlentities($newEntry->name).'</td></tr>
|
<tr><td><b>Name:</b></td><td>'.htmlentities($newEntry->name).'</td></tr>
|
||||||
<tr><td><b>IP:</b></td><td>'.$newEntry->ip.'</td></tr>
|
<tr><td><b>IP:</b></td><td>'.$newEntry->ip.'</td></tr>
|
||||||
<tr><td><b>Agent:</b></td><td>'.htmlentities($newEntry->agent).'</td></tr>
|
<tr><td><b>Agent:</b></td><td>'.htmlentities($newEntry->agent).'</td></tr>
|
||||||
<tr><td><b>Message:</b></td><td>'.htmlentities($newEntry->message).'</td></tr>
|
<tr><td><b>Message:</b></td><td>'.htmlentities($newEntry->message).'</td></tr>
|
||||||
</table>'
|
</table>');
|
||||||
]
|
|
||||||
]
|
MailtrapClient::initSendingEmails(
|
||||||
]);
|
apiKey: config('services.mailtrap-sdk.apiKey')
|
||||||
|
)->send($email);
|
||||||
|
|
||||||
return back()->with('success', 'Entry submitted successfully!');
|
return back()->with('success', 'Entry submitted successfully!');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ public static function create(Request $request): GuestbookEntry {
|
||||||
$newEntry = new GuestbookEntry;
|
$newEntry = new GuestbookEntry;
|
||||||
$newEntry->name = $request->get('name');
|
$newEntry->name = $request->get('name');
|
||||||
$newEntry->message = $request->get('message');
|
$newEntry->message = $request->get('message');
|
||||||
$newEntry->ip = $request->header('X-Forwarded-For');
|
$newEntry->ip = $request->header('X-Forwarded-For') ?: $request->ip();
|
||||||
$newEntry->agent = $request->userAgent();
|
$newEntry->agent = $request->userAgent();
|
||||||
$newEntry->flagged = true;
|
$newEntry->flagged = true;
|
||||||
$newEntry->save();
|
$newEntry->save();
|
||||||
|
|
|
||||||
|
|
@ -7,16 +7,19 @@
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^8.1",
|
"php": "^8.1",
|
||||||
"ext-exif": "*",
|
"ext-exif": "*",
|
||||||
|
"ext-pdo": "*",
|
||||||
"browner12/helpers": "^3.7",
|
"browner12/helpers": "^3.7",
|
||||||
"guzzlehttp/guzzle": "^7.2",
|
"guzzlehttp/guzzle": "^7.10",
|
||||||
"intervention/image": "^3.9",
|
"intervention/image": "^3.9",
|
||||||
"laravel/framework": "^10.10",
|
"laravel/framework": "^10.10",
|
||||||
"laravel/tinker": "^2.8",
|
"laravel/tinker": "^2.8",
|
||||||
|
"php-http/guzzle7-adapter": "^1.1",
|
||||||
|
"railsware/mailtrap-php": "^3.10",
|
||||||
"scrivo/highlight.php": "v9.18.1.10",
|
"scrivo/highlight.php": "v9.18.1.10",
|
||||||
"spatie/laravel-honeypot": "^4.3",
|
"spatie/laravel-honeypot": "^4.3",
|
||||||
"spatie/laravel-html": "^3.4",
|
"spatie/laravel-html": "^3.4",
|
||||||
"ua-parser/uap-php": "^3.9.14",
|
"symfony/mailer": "^6.4",
|
||||||
"ext-pdo": "*"
|
"ua-parser/uap-php": "^3.9.14"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fakerphp/faker": "^1.9.1",
|
"fakerphp/faker": "^1.9.1",
|
||||||
|
|
|
||||||
1414
composer.lock
generated
1414
composer.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'name' => env('APP_NAME', 'wah.moe'),
|
'name' => env('APP_NAME', 'wah.moe'),
|
||||||
'version' => '2026.02.12',
|
'version' => '2026.02.24',
|
||||||
'env' => env('APP_ENV', 'production'),
|
'env' => env('APP_ENV', 'production'),
|
||||||
'debug' => (bool)env('APP_DEBUG', false),
|
'debug' => (bool)env('APP_DEBUG', false),
|
||||||
'url' => env('APP_URL', 'http://localhost'),
|
'url' => env('APP_URL', 'http://localhost'),
|
||||||
|
|
|
||||||
|
|
@ -46,27 +46,8 @@
|
||||||
'local_domain' => env('MAIL_EHLO_DOMAIN'),
|
'local_domain' => env('MAIL_EHLO_DOMAIN'),
|
||||||
],
|
],
|
||||||
|
|
||||||
'ses' => [
|
'mailtrap' => [
|
||||||
'transport' => 'ses',
|
'transport' => 'mailtrap-sdk'
|
||||||
],
|
|
||||||
|
|
||||||
'mailgun' => [
|
|
||||||
'transport' => 'mailgun',
|
|
||||||
// 'client' => [
|
|
||||||
// 'timeout' => 5,
|
|
||||||
// ],
|
|
||||||
],
|
|
||||||
|
|
||||||
'postmark' => [
|
|
||||||
'transport' => 'postmark',
|
|
||||||
// 'client' => [
|
|
||||||
// 'timeout' => 5,
|
|
||||||
// ],
|
|
||||||
],
|
|
||||||
|
|
||||||
'sendmail' => [
|
|
||||||
'transport' => 'sendmail',
|
|
||||||
'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
|
|
||||||
],
|
],
|
||||||
|
|
||||||
'log' => [
|
'log' => [
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,5 @@
|
||||||
'lastfm' => [
|
'lastfm' => [
|
||||||
'key' => env('LASTFM_KEY'),
|
'key' => env('LASTFM_KEY'),
|
||||||
'user' => env('LASTFM_USER'),
|
'user' => env('LASTFM_USER'),
|
||||||
],
|
|
||||||
'mailjet' => [
|
|
||||||
'key' => env('MAILJET_API'),
|
|
||||||
'secret' => env('MAILJET_SECRET'),
|
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue