andriajah Mon Jul 2022 1 year ago

Contoh Kirim Email di CodeIgniter 4 Dengan SMTP

Dalam tutorial Codeigniter ini, kami ingin berbagi dengan Anda cara mengirim email dari localhost ke server di Codeigniter 4.

Codeigniter 4 mengirim email sangat mudah karena fungsionalitas baru, Sekarang versi stabil dari Codeigniter tersedia untuk diunduh dari situs web resmi.

Mereka telah memperkenalkan kelas layanan untuk menggunakan layanan Codeigniter 4 seperti email; Anda cukup memanggil layanan di Codeigniter dengan menggunakan kode di bawah ini.

Buat id email dan kata sandi mereka menggunakan Cpanel, dan atur email dan kata sandi di sini.

\Config\Services::serviceName();
// i.e  \Config\Services::email();

Di segmen ini, Anda harus tahu cara menggunakannya; anda bisa mengirimkan email dari website/localhost anda ke user/client menggunakan Codeigniter 4, jadi sebelum menggunakan library email, anda perlu melihat setting library di Codeigniter 4.

Langkah 1: Buka app/config/Email.php dan buka file

Langkah 2: Perbarui Kredensial Email

<?php
namespace Config;
 
use CodeIgniter\Config\BaseConfig;
 
class Email extends BaseConfig
{
 
  /**
   * @var string
   */
  public $fromEmail;
 
  /**
   * @var string
   */
  public $fromName;
 
  /**
   * @var string
   */
  public $recipients;
 
  /**
   * The "user agent"
   *
   * @var string
   */
  public $userAgent = 'CodeIgniter';
 
  /**
   * The mail sending protocol: mail, sendmail, smtp
   *
   * @var string
   */
  public $protocol = 'smtp';
 
  /**
   * The server path to Sendmail.
   *
   * @var string
   */
  public $mailPath = '/usr/sbin/sendmail';
 
  /**
   * SMTP Server Address
   *
   * @var string
   */
  public $SMTPHost='mail.tutsmake.com';
 
  /**
   * SMTP Username
   *
   * @var string
   */
  public $SMTPUser = '[email protected]';
 
  /**
   * SMTP Password
   *
   * @var string
   */
  public $SMTPPass = 'YourPasswordHere$';
 
  /**
   * SMTP Port
   *
   * @var integer
   */
  public $SMTPPort = 587;
 
  /**
   * SMTP Timeout (in seconds)
   *
   * @var integer
   */
  public $SMTPTimeout = 15;
 
  /**
   * Enable persistent SMTP connections
   *
   * @var boolean
   */
  public $SMTPKeepAlive = false;
 
  /**
   * SMTP Encryption. Either tls or ssl
   *
   * @var string
   */
  public $SMTPCrypto = 'tls';
 
  /**
   * Enable word-wrap
   *
   * @var boolean
   */
  public $wordWrap = true;
 
  /**
   * Character count to wrap at
   *
   * @var integer
   */
  public $wrapChars = 76;
 
  /**
   * Type of mail, either 'text' or 'html'
   *
   * @var string
   */
  public $mailType = 'html';
 
  /**
   * Character set (utf-8, iso-8859-1, etc.)
   *
   * @var string
   */
  public $charset = 'UTF-8';
 
  /**
   * Whether to validate the email address
   *
   * @var boolean
   */
  public $validate = false;
 
  /**
   * Email Priority. 1 = highest. 5 = lowest. 3 = normal
   *
   * @var integer
   */
  public $priority = 3;
 
  /**
   * Newline character. (Use “\r\n” to comply with RFC 822)
   *
   * @var string
   */
  public $CRLF = "\r\n";
 
  /**
   * Newline character. (Use “\r\n” to comply with RFC 822)
   *
   * @var string
   */
  public $newline = "\r\n";
 
  /**
   * Enable BCC Batch Mode.
   *
   * @var boolean
   */
  public $BCCBatchMode = false;
 
  /**
   * Number of emails in each BCC batch
   *
   * @var integer
   */
  public $BCCBatchSize = 200;
 
  /**
   * Enable notify message from server
   *
   * @var boolean
   */
  public $DSN = false;
 
}

 

Langkah 3: Sekarang buka controller/method Anda dan cukup use/call library/class

public function yourMethod(){
   $message = "Please activate the account ".anchor('user/activate/'.$data['u_link'],'Activate Now','');
   $email = \Config\Services::email();
   $email->setFrom('[email protected]', 'your Title Here');
   $email->setTo($data['u_email']);
   $email->setSubject('Your Subject here | tutsmake.com');
   $email->setMessage($message);//your message here
 
   $email->setCC('another@emailHere');//CC
   $email->setBCC('thirdEmail@emialHere');// and BCC
   $filename = '/img/yourPhoto.jpg'; //you can use the App patch 
   $email->attach($filename);
    
   $email->send();
   $email->printDebugger(['headers']);
}

Perhatikan bahwa:- Jika Anda mengirim email menggunakan Gmail, Anda harus mengizinkan aplikasi yang tidak aman mengakses Gmail, Anda dapat melakukannya dengan membuka setelan Gmail  di sini .

 

Setelah aplikasi yang kurang aman diaktifkan; sekarang Anda dapat menggunakan Gmail Anda untuk mengirim email.

codeigniter send mail with codeigniter 4 example