Bobcares

PHPMailer could not instantiate mail function – Why does this happen?

by | Nov 20, 2019

Are you stuck with “PHPMailer could not instantiate mail function”?

PHPMailer helps to send emails safely and easily from a web server. However, it often errors out due to misconfigurations of the mail() function, absence of local mail server and so on.

At Bobcares, we often receive requests to fix this error as part of our Server Management Services.

Today, let’s have a deep look at this error and see how our Support Engineers fix PHPMailer easily.

 

Why does PHPMailer could not instantiate mail function occurs?

As we all know, PHPMailer is a popular code for sending email from PHP. And, many open-source projects like WordPress, Drupal, etc use them.

PHPMailer validates email addresses automatically and protects against header injection attacks.

Developers often prefer sending mail from their code. And, mail() is the only PHP function that supports this.

But, sometimes the incorrect PHP installation fails to call the mail() function correctly. This will cause mail function errors.

Similarly, in some cases, the absence of a local mail server will also cause this error.

 

How to fix “PHPMailer could not instantiate mail function”?

So far we have discussed the error in detail. Now, let’s have a look at some of its top fixes.

There are alternative ways to resolve this error easily.

 

1. Using SMTP to send the email

As we have already said, if the PHP installation is not configured to call the mail() function correctly, it will cause the error.

So, in such cases, it is better to use isSMTP() and send the email directly using SMTP.

This is faster, safer and easier to debug than using mail(). This will resolve the error easily.

 

2. Install a local mail server

The PHP mail() function usually sends the mail via a local mail server.

So, using SMTP will not resolve the error if a mail server is not set up on the localhost.

Therefore, it is necessary to install a local mail server. For instance, we can install PostFix to the server using the below command.

sudo apt-get install postfix

 

3. Other Solutions

The PHP mail() function works with the Sendmail binary on Linux, BSD, and macOS platforms.

So, it is important to ensure that the sendmail_path points at the Sendmail binary, which is usually /usr/sbin/sendmail in php.ini.

Similarly, sometimes when we try to send large emails, it returns “Could not instantiate mail function” error along with  “Cannot send message: Too big” message in the PHP error log.

This means the mail transfer agent is refusing to deliver these emails.

So, we need to configure the MTA to allow larger attachments to resolve the error.

 

[Still facing difficulty to fix PHPMailer error?- We’ll help you.]

 

Conclusion

In short, PHPMailer could not instantiate mail function occurs due to misconfigurations of the mail() function, absence of local mail server and so on. In today’s writeup, we discussed this error in detail and saw some of the major fixes by our Support Engineers.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = "owonCMyG5nEQ0aD71QM";

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF