Basic Phpmailer

Sending mail communication is an essential part of a website, the php mail function provides a standard way to send email through php.

Phpmailer  easily provides advanced and dynamic mail features such as encryption, authentication, HTML messages, and attachments.

To setup Phpmailer on your shared cpanel account, simply do the following:

1.  Download the zip folder at https://github.com/PHPMailer/PHPMailer/archive/master.zip

2. Create a folder in your "public_html" directory that will contain the files. You can name the folder "mailer"

2. Unzip the Downloaded file, copy the "src" folder and its contents to the "mailer" folder

To make thing easier, you can zip the "src" folder and upload it  to the "mailer" directory then unzip it.

3. Create a file in the "mailer" directory and name it "php_mailer.php" for example.

4. Copy and past the following code and modify accordingly

<?php
/**
 * This example shows making an SMTP connection without using authentication.
 */
// path to phpmailer classes
require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';

//Import the PHPMailer class into the global namespace
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;

//SMTP needs accurate times, and the PHP time zone MUST be set
//This should be done in your php.ini, but this is how to do it if you don't have access to that
date_default_timezone_set('Etc/UTC');

//Create a new PHPMailer instance
$mail = new PHPMailer;
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
// SMTP::DEBUG_OFF = off (for production use)
// SMTP::DEBUG_CLIENT = client messages
// SMTP::DEBUG_SERVER = client and server messages
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
//Set the hostname of the mail server
$mail->Host = 'localhost';
//Set the SMTP port number - likely to be 25, 465 or 587
$mail->Port = 25;
//We don't need to set this as it's the default value
//$mail->SMTPAuth = false;
//Set who the message is to be sent from
$mail->setFrom('from@example.com', 'First Last');
//Set an alternative reply-to address
$mail->addReplyTo('replyto@example.com', 'First Last');
//Set who the message is to be sent to
$mail->addAddress('whoto@example.com', 'John Doe');
//Set the subject line
$mail->Subject = 'PHPMailer SMTP without auth test';

//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';
//Attach an image file
//send the message, check for errors
if (!$mail->send()) {
    echo 'Mailer Error: '. $mail->ErrorInfo;
} else {
    echo 'Message sent!';
}

Remember to change "example.com" to your domain name.

Assuming your application file is "php_mailer.php"

You can now navigate to  www.example.com/mailer/php_mailer.php

You should see:  'Message sent ' if everything work fine.

Common errors include DNS failure and mail server error, for detail guide on how to troubleshoot such error, follow this guide here

This guide was adapted from Phpmailer

 

  • mail
  • 4 Users Found This Useful
Was this answer helpful?

Related Articles

Wordpress Admin Password Reset

In this guide, we will show you how to reset Wordpress Admin password via Wordpress Reset link...