Compare commits

..

No commits in common. "master" and "v2026.02.12" have entirely different histories.

7 changed files with 463 additions and 1017 deletions

View file

@ -6,10 +6,8 @@
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 {
@ -31,23 +29,31 @@ public function show(): View {
*/ */
public function addEntry(Request $request): RedirectResponse { public function addEntry(Request $request): RedirectResponse {
$newEntry = GuestbookEntry::create($request); $newEntry = GuestbookEntry::create($request);
$email = (new MailtrapEmail()) $response = Http::withBasicAuth(config('services.mailjet.key'), config('services.mailjet.secret'))->post('https://api.mailjet.com/v3.1/send', [
->from(new Address("wah@wah.moe", "wah dot moe")) 'Messages' => [
->to(new Address("roscoe@wah.moe", "Roscoe D. Wah")) [
->subject("New Guestbook Entry!") 'From' => [
->html(' 'Email' => 'wah@wah.moe',
'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') ?: '0.0.0.0'; $newEntry->ip = $request->header('X-Forwarded-For');
$newEntry->agent = $request->userAgent(); $newEntry->agent = $request->userAgent();
$newEntry->flagged = true; $newEntry->flagged = true;
$newEntry->save(); $newEntry->save();

View file

@ -7,19 +7,16 @@
"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.10", "guzzlehttp/guzzle": "^7.2",
"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",
"symfony/mailer": "^6.4", "ua-parser/uap-php": "^3.9.14",
"ua-parser/uap-php": "^3.9.14" "ext-pdo": "*"
}, },
"require-dev": { "require-dev": {
"fakerphp/faker": "^1.9.1", "fakerphp/faker": "^1.9.1",

1406
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.24-patch0', 'version' => '2026.02.12',
'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,8 +46,27 @@
'local_domain' => env('MAIL_EHLO_DOMAIN'), 'local_domain' => env('MAIL_EHLO_DOMAIN'),
], ],
'mailtrap' => [ 'ses' => [
'transport' => 'mailtrap-sdk' 'transport' => 'ses',
],
'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,5 +17,9 @@
'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'),
] ]
]; ];