-->

Mengirimkan Email di YiiFramework dengan yii-mail

Mengirimkan email dalam suatu website untuk berinteraksi dengan usernya memang merupakan satu fitur wajib bagi website tersebut.

Nah bagi temen-teman atau pengguna yii yang lain, mungkin pernah mengalami error bagaimana mengirikan email dengan menggunakan php atau yiiframework.

Salah satu error yang muncul jika kita menggunakan perintah mail() dalam php adalah tidak adany mail server yang bisa terhubung.
Error yang keluar mungkin seperti ini :


mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() 

Itu dikarenakan di localhost tidak ada mail server sehingga tidak bisa mengirimkan email untuk mengirimkan email ini anda harus menginstall mail server dulu di local. Salah satunya adalah hMailServer.

Atau jika kita tidak bisa menggunakan server lokal kita bisa menggunakan email lain dengan setting SMTP dari email tersebut.



Pada kesempatan kali ini ane ingin share bagaimana kita mengirimkan email menggunakan yii-mail extension. Sebelumnya download dulu yii-mail extension di sini. Okeh langsung aja extract kemudian masukan ke dalam /protected/extensions/

Pertama kali setting untuk email di config mainnya seperti ini :


'components'=>array( 
          'mail' => array(
    'class' => 'ext.yii-mail.YiiMail',
    'transportType' => 'php',
    'viewPath' => 'application.views.mail',
    'logging' => true,
    'dryRun' => false,
Nah kalau kita ingin menggunakan email dari provider lain contohnya disini yahoo bisa pakai setting sebagai berikut :
'mail' => array(
    'class' => 'ext.yii-mail.YiiMail',
     'transportType'=>'smtp',
     'transportOptions'=>array(
       'host'=>'smtp.mail.yahoo.com',
       'username'=>'nama_email',//contohna nama_email@yahoo.co.id
       'password'=>'xxxx',
       'port'=>'465',
       'encryption'=>'ssl',
     ),
    'viewPath' => 'application.views.mail',
    'logging' => true,
    'dryRun' => false
) 
Terus bagaimana caranya kita untuk mengirimkannya simple jangan lupa ubah dulu email dari pengirimnya di main
'params'=>array(
        // this is used in contact page
        'adminEmail'=>'nama_email@yahoo.co.id',
    ),
Setealah itu coba mengirimkan email

                Yii::import('ext.yii-mail.YiiMailMessage');
  $message = new YiiMailMessage;
  $message->setBody('Message content here with HTML', 'text/html');
  $message->subject = 'My Subject';
  $message->addTo('viyanatmail@gmail.com');
  $message->from = Yii::app()->params['adminEmail'];
  Yii::app()->mail->send($message);

Nah kalo SMTP Google tinggal diganti deh settingnya sebagai berikut :
Incoming Mail (POP3) Server - requires SSL: pop.gmail.com
Use SSL: Yes
Port: 995
Outgoing Mail (SMTP) Server - requires TLS3 or SSL: smtp.gmail.com (use authentication)
Use Authentication: Yes
Port for TLS/STARTTLS: 587
Port for SSL: 465
Account Name: your full email address (including @gmail.com or @your_domain.com)
Email Address: your email address (username@gmail.com or username@your_domain.com)
Password: your Gmail password
Note : Jangan lupa untuk mengaktifkan SMTP dulu di tiap akun email yang anda pakai
Facebook Comments

1 komentar: