Compare commits

...

1 commit

Author SHA1 Message Date
2d5f1c13fd
Use mailtrap instead of mailjet 2026-02-24 00:22:51 +00:00
7 changed files with 1017 additions and 463 deletions

View file

@ -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!');
} }

View file

@ -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();

View file

@ -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

File diff suppressed because it is too large Load diff

View file

@ -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'),

View file

@ -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' => [

View file

@ -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'),
] ]
]; ];