Advertisement
cowslaw

Mailgun Routes

Dec 30th, 2015
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.59 KB | None | 0 0
  1. // Confirm:
  2. $app->get('/mail/confirm/', function() use ($app) {
  3.     $request = $app->request;
  4.     $hash = $request->get('hash');
  5.  
  6.     if (!empty($hash)) {
  7.         $validate = $app->mail->optIn()->validateHash($app->config->get('mail.list-secret'), $hash);
  8.    
  9.         if ($hash) {
  10.             $list  = $validate['mailingList'];
  11.             $email = $validate['recipientAddress'];
  12.  
  13.             $app->mail->raw()->put('lists/'.$app->config->get('mail.list-address').'/members/'.$email, [
  14.                 'subscribed' => 'yes'
  15.             ]);
  16.  
  17.             $app->mail->send('email/mail/confirm.php', [], function($message) use ($email) {
  18.                 $message->to($email);
  19.                 $message->subject('You have subscribed.');
  20.             });
  21.  
  22.             $app->flash('global', 'You have confirmed your subscription.');
  23.             return $app->response->redirect($app->urlFor('home'));
  24.         }
  25.     }    
  26.  
  27.     $app->render('email/subscribe.php');
  28. })->name('mail.confirm');
  29.  
  30.  
  31.  
  32.  
  33.  
  34. // Subscribe:
  35. $app->get('/mail/subscribe/', function() use ($app) {
  36.     $app->render('email/subscribe.php');
  37. })->name('mail.subscribe');
  38.  
  39. $app->post('/mail/subscribe/', function() use ($app) {
  40.     $request = $app->request;
  41.     $name  = $request->post('name');
  42.     $email = $request->post('email');
  43.     $v = $app->validation;
  44.  
  45.     $v->validate([
  46.         'name' => [$name, 'required'],
  47.         'email' => [$email, 'required']
  48.     ]);
  49.  
  50.     if ($v->passes()) {
  51.         $validate = $app->mail->validate()->get('address/validate', [
  52.             'address' => $email
  53.         ])->http_response_body;
  54.  
  55.         if ($validate->is_valid) {
  56.             $hash = $app->mail->optIn()->generateHash(
  57.                 $app->config->get('mail.list-address'),
  58.                 $app->config->get('mail.list-secret'),
  59.                 $email
  60.             );
  61.  
  62.             $app->mail->send('email/mail/subscribe.php', ['hash' => $hash], function($message) use ($email) {
  63.                 $message->to($email);
  64.                 $message->subject('Confirm subscription.');
  65.             });
  66.  
  67.             $app->mail->raw()->post('lists/'.$app->config->get('mail.list-address').'/members', [
  68.                 'name'       => $name,
  69.                 'address'    => $email,
  70.                 'subscribed' => 'no'
  71.             ]);
  72.  
  73.             $app->flash('global', 'You have subscribed. Please check your inbox to confirm.');
  74.             return $app->response->redirect($app->urlFor('home'));
  75.         }
  76.     }
  77.  
  78.     $app->render('email/subscribe.php', [
  79.         'errors' => $v->errors(),
  80.         'request' => $request
  81.     ]);
  82. })->name('mail.subscribe.post');
  83.  
  84.  
  85.  
  86.  
  87.  
  88. // Send:
  89. $app->get('/mail/send/', $admin(), function() use ($app) {
  90.     $app->render('email/send.php');
  91. })->name('mail.send');
  92.  
  93. $app->post('/mail/send/', $admin(), function() use ($app) {
  94.     $request = $app->request;
  95.     $subject  = $request->post('subject');
  96.     $body = $request->post('body');
  97.     $v = $app->validation;
  98.  
  99.     $v->validate([
  100.         'subject' => [$subject, 'required'],
  101.         'body'    => [$body, 'required']
  102.     ]);
  103.  
  104.     if ($v->passes()) {
  105.         $app->mail->send('email/mail/send.php', ['body' => $body], function($message) use ($app, $subject) {
  106.             $message->to($app->config->get('mail.list-address'));
  107.             $message->subject($subject);
  108.         });
  109.  
  110.         $app->flash('global', 'Email has been sent.');
  111.         return $app->response->redirect($app->urlFor('mail.send'));
  112.     }
  113.  
  114.     $app->render('email/send.php', [
  115.         'errors' => $v->errors(),
  116.         'request' => $request
  117.     ]);
  118. })->name('mail.send.post');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement