---
title: Sending mails using PHPMailer
description: "**Use case**: If you have coded your site using PHP, this is for you. Note that, you need to download the PHP Mailer plugin from https://github.com/PHPMailer/PHPMailer Sending on Custom application or website/ Custom Contact forms Error: The email could not…"
url: "https://truehost.com/support/knowledge-base/sending-on-custom-application-or-website-custom-contact-forms-via-smtp/"
updated: "2024-06-07"
---

# Sending mails using PHPMailer

**Use case**: If you have coded your site using PHP, this is for you. Note that, you need to download the PHP Mailer plugin from https://github.com/PHPMailer/PHPMailer

Sending on Custom application or website/ Custom Contact forms

Error:

The email could not be sent.
 Possible reason: your host may have disabled the mail() function.

Recreating Error

Error is obtained when send an email via contact form such as reset password.

Causes of the Errors

Disabled mail() or PHP Mail function on that particular Server.

Why is it Disabled

Most host providers disable mail() function from the server to curb spamming and therefore safeguard server performance and credibility of their emails and general services.

Mail() function allow email sending without authentication so any contact form can be used by anyone (user nobody) to send any amount of mails.

Hosting companies prefer users to use SMTP instead mail

Solutions

Configure SMTP mail Server

For Custom website create a sending page with the following settings

Download and Install / Place PHPMailer in your root directory.

Use the following custom code to send your email.

###### <?phprequire 'PHPMailerAutoload.php';

###### $mail = new PHPMailer; //$mail->SMTPDebug = 3;      // Enable verbose debug output

###### $mail->isSMTP();     // Set mailer to use SMTP

###### $mail->Host = 'mail.example.com;servername.truehost.cloud';  // Specify main and backup SMTP servers

###### $mail->SMTPAuth = true;   // Enable SMTP authentication

###### $mail->Username = 'user@example.com';     // SMTP username

###### $mail->Password = 'secret';              // SMTP password

###### $mail->SMTPSecure = 'tls';        // Enable TLS encryption, `ssl` also accepted

###### $mail->Port = 587;      // TCP port to connect to or 25 for non secure

###### $mail->setFrom('from@example.com', 'Mailer');

###### $mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient

###### $mail->addAddress('ellen@example.com');               // Name is optional

###### $mail->addReplyTo('info@example.com', 'Information');

###### $mail->addCC('cc@example.com');

###### $mail->addBCC('bcc@example.com');

###### $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments

###### $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name

###### $mail->isHTML(true);            // Set email format to HTML

###### $mail->Subject = 'Here is the subject';

###### $mail->Body    = 'This is the HTML message body <b>in bold!</b>';

###### $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

###### if(!$mail->send()) {    echo 'Message could not be sent.';    echo 'Mailer Error: ' .

###### $mail->ErrorInfo;} else {    echo 'Message has been sent';}

Read More [https://github.com/PHPMailer/PHPMailer](https://github.com/PHPMailer/PHPMailer)
