Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Confirm:
- $app->get('/mail/confirm/', function() use ($app) {
- $request = $app->request;
- $hash = $request->get('hash');
- if (!empty($hash)) {
- $validate = $app->mail->optIn()->validateHash($app->config->get('mail.list-secret'), $hash);
- if ($hash) {
- $list = $validate['mailingList'];
- $email = $validate['recipientAddress'];
- $app->mail->raw()->put('lists/'.$app->config->get('mail.list-address').'/members/'.$email, [
- 'subscribed' => 'yes'
- ]);
- $app->mail->send('email/mail/confirm.php', [], function($message) use ($email) {
- $message->to($email);
- $message->subject('You have subscribed.');
- });
- $app->flash('global', 'You have confirmed your subscription.');
- return $app->response->redirect($app->urlFor('home'));
- }
- }
- $app->render('email/subscribe.php');
- })->name('mail.confirm');
- // Subscribe:
- $app->get('/mail/subscribe/', function() use ($app) {
- $app->render('email/subscribe.php');
- })->name('mail.subscribe');
- $app->post('/mail/subscribe/', function() use ($app) {
- $request = $app->request;
- $name = $request->post('name');
- $email = $request->post('email');
- $v = $app->validation;
- $v->validate([
- 'name' => [$name, 'required'],
- 'email' => [$email, 'required']
- ]);
- if ($v->passes()) {
- $validate = $app->mail->validate()->get('address/validate', [
- 'address' => $email
- ])->http_response_body;
- if ($validate->is_valid) {
- $hash = $app->mail->optIn()->generateHash(
- $app->config->get('mail.list-address'),
- $app->config->get('mail.list-secret'),
- $email
- );
- $app->mail->send('email/mail/subscribe.php', ['hash' => $hash], function($message) use ($email) {
- $message->to($email);
- $message->subject('Confirm subscription.');
- });
- $app->mail->raw()->post('lists/'.$app->config->get('mail.list-address').'/members', [
- 'name' => $name,
- 'address' => $email,
- 'subscribed' => 'no'
- ]);
- $app->flash('global', 'You have subscribed. Please check your inbox to confirm.');
- return $app->response->redirect($app->urlFor('home'));
- }
- }
- $app->render('email/subscribe.php', [
- 'errors' => $v->errors(),
- 'request' => $request
- ]);
- })->name('mail.subscribe.post');
- // Send:
- $app->get('/mail/send/', $admin(), function() use ($app) {
- $app->render('email/send.php');
- })->name('mail.send');
- $app->post('/mail/send/', $admin(), function() use ($app) {
- $request = $app->request;
- $subject = $request->post('subject');
- $body = $request->post('body');
- $v = $app->validation;
- $v->validate([
- 'subject' => [$subject, 'required'],
- 'body' => [$body, 'required']
- ]);
- if ($v->passes()) {
- $app->mail->send('email/mail/send.php', ['body' => $body], function($message) use ($app, $subject) {
- $message->to($app->config->get('mail.list-address'));
- $message->subject($subject);
- });
- $app->flash('global', 'Email has been sent.');
- return $app->response->redirect($app->urlFor('mail.send'));
- }
- $app->render('email/send.php', [
- 'errors' => $v->errors(),
- 'request' => $request
- ]);
- })->name('mail.send.post');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement