How To Send Email In Codeigniter Using Smtp?
In this tutorial, we are learning how to send email in Codeigniter using SMTP.
Codeigniter 4 sending email is very easy because of the new functionality, Now the Codeigniter 4 available to download from the official website we learn unable to send email using PHP SMTP Codeigniter.
They have introduced the services classes to use the Codeigniter 4 services like email; you just call the services in Codeigniter by using the below code.
Create a mail id and their password using Cpanel, and set email and password here.
\Config\Services::serviceName(); // i.e \Config\Services::email();
In this tutorial, you learn how to use it you can send the email from your website/localhost to the user/client using Codeigniter 4, so before using the email library, you need to see the library setting in Codeigniter 4.
<?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.phpcodingstuff.com'; /** * SMTP Username * * @var string */ public $SMTPUser = 'abc@phpcodingstuff.com'; /** * 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; }
public function yourMethod(){ $message = "Please activate the account ".anchor('user/activate/'.$data['u_link'],'Activate Now',''); $email = \Config\Services::email(); $email->setFrom('ci-4-project@phpcodingstuff.com', 'your Title Here'); $email->setTo($data['u_email']); $email->setSubject('Your Subject here | phpcodingstuff.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']); }
I hope it can help you...
Leave a Reply