Cara menggunakan newsletter in php

Mekanisme ini bisa dicapai dengan menggunakan konsep event + listener + mail gan.

Jadi di logika create seperti ini:

...
// disini logika untuk menyimpan blog baru

event(new SebuahEvent);

Lalu nanti agan tinggal meregisterkan sebuah listener untuk event di atas. Dari dalam listener tersebut kemudian bisa  mengirimkan email ke semua subscriber.

Kurang lebih begitu si kalo solusi dari saya, semoga membantu

Untuk komplitnya ada di: https://laravel.com/docs/7.x/events

Selamat pagi sekolahkoding, Saya saat ini sedang mengembangkan website untuk sebuah organisasi dan menginginkan fitur newsletter didalamnya. Saya menggunakan queue dalam masalah ini. Namun, setelah dilakukan percobaan, dan menjalankan command php artisan queue:work, email tidak masuk kedalam inbox saya, mohon bantuannya teman - teman. Terimakasih.

 
//EmailController
public function postEmail(Request $request){
        $this->validate(request(),[
            'title' => 'required',
            'body' => 'required',
        ]);

        $title = $request->input('title');
        $content = $request->input('body');

        $job = (new SendEmailJob($title,$content))
            ->delay(Carbon::now()->addSeconds(5));
        
        dispatch($job);

        return back()->with('status', 'Email Sent!');
    } 
 
//Queue SendEmailJob
public function handle()
    {
        $title = $this->title;
        $subcribers = Subscriber::latest()->get();
        $email = new NewsletterMessage($title,$content);
        
        foreach($subscribers as $subscriber){
            Mail::to($subscriber->email)->send($email);
        }        
    }
 
public function build()
    {
        return $this->markdown('emails.message')->with('title','content');
    }

Biasanya para pengunjung yang suka dengan artikel-artikel yang ada di blog atau website sobat, ingin mendapatkan info update tentang artikel terbaru. Untuk itulah sobat perlu membuat form pendaftaran newsletter. Disini saya akan membuat sedikit coretan kodingnya disini hanya untuk sobat-sobat tercinta. Let's have fun with coding.


STEP 1 : Konfigurasi CodeIgniter
Buka file application\config\config.php rubah isinya menjadi

$config['base_url'] = 'http://localhost/email/';
//email adalah nama folder dalam localhost
$config['server_root']  = $_SERVER['DOCUMENT_ROOT'];

Buka file application\config\autoload.php dan load otomatis helper form dan url dengan merubah

$autoload['helper'] = array('url','form');

Buat file bernama email.php dalam folder application\config\email.php dan isikan skrip dibawah ini

Note : Ingat dalam baris 12, hanya masukkan alamat email punya nya google alias gmail sobat saja. Konfigurasi email ini hanya bisa dijalankan untuk email gmail. Sobat bisa klik ini untuk konfigurasi email di codeigniter lebih lanjut.


STEP 2 : Membuat Controller letter.php
Buat file controller application\controllers\letter.php dan isikan skrip dibawah

load->view('letter_v');
 }
 function send()
 {
 $this->load->library('form_validation');
  
  // field name, error message, validation rules
  $this->form_validation->set_rules('name', 'Name', 'trim|required');
  $this->form_validation->set_rules('email', 'Email Address', 'trim|required|valid_email');
  
  if($this->form_validation->run() == FALSE)
  {
   $this->load->view('letter_v');
  }
  else
  {
   // validation berhasil. Tinggal mengirimkan email
   $name = $this->input->post('name');
   $email = $this->input->post('email');
  
  // mengirim email  
  $this->load->library('email');  
  $this->email->from('','ahmad darul abror');  
  $this->email->to($email);  
  $this->email->subject('Tes Konfirmasi Signup Newsletter');  
  $this->email->message("kamu sudah terdaftar sob!");  
  $this->email->send();   
  
  $path = $this->config->item('server_root');
  $file = $path . '/email/attachments/newsletter1.txt';

  $this->email->attach($file);
   if($this->email->send())
   {
    echo 'Your email was sent, fool.';
    //$this->load->view('signup_confirmation_view');
   }

   else
   {
    show_error($this->email->print_debugger());
   }
  }
}}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */

Penjelasan :

  • Pada baris 11 pada fungsi index kita memanggil file letter_v.php pada folder application\views\letter_v.php yang akan dibuat dibawah ini.
  • Pada baris 21, jika validasi pada baris18 dan 19 dijalankan dan menghasilkan FALSE maka yang akan ditampilkan adalah file letter_v.php dengan keterangan error.
  • Pada baris 34, email akan dikirimkan ke variabel $email email yang sudah didefinisikan diatasnya
  • Pada baris 39, ada variabel yang berfungsi menangkap path atau alamat file yang di attach
  • Pada baris 42 merupakan method untuk mengirimakan file attachment di codeigniter

STEP 3 : Membuat file letter_v.php 
Isikan file application\views\letter_v.php dengan skrip dibawah :





  
 untitled
 




Newsletter

'name', 'id' => 'name', 'value' => set_value('name') ); ?>

'); ?>

STEP 4 : Membuat file CSS
Buatlah file css/style.css dengan css adalah folder diluar sistem, dan isikan file dengan skrip dibawah :

label {
display: block;
}

.error {
color: #373737;
font-style: italic;
}

#newsletter_form {
background: #e3e3e3;
width: 20%;
margin: 5em auto 0;
padding: 32px;
border: 1px solid #d5d5d5;
}

#newsletter_form form input[type=text] {
width: 100%;
}

h2 {
margin-top: -54px;
color: #aa2828;
font-family: arial;
}

input[type=submit] {
border: 1px solid #c62828;
background: #aa2828;
color: #e3e3e3;
padding: .5em;
cursor: pointer;
}

input[type=submit]:hover {
background: #9a2222;
}

Jika sobat benar dalam melakukan semua langkah-langkah hasilnya akan seperti screenshot di bawah

Cara menggunakan newsletter in php

Cara menggunakan newsletter in php

About author: Ahmad Darul Abror

Saya seorang web developer yang sering berkecimpung dengan HTML, PHP, CSS dan Javascript. Saya terbiasa menggunakan framework baik dari javascript (Jquery, Jquery UI, dll) atau dari PHP (Codeigniter, Laravel, Symphony) ataupun CSS framework (Bootstrap, Pure, Yaml).