306: Joomla 3.1 Error - Could not instantiate mail function
- Could not instantiate mail function.
- The mail() function has been disabled and the mail cannot be sent.
- Registration failed: An error was encountered while sending the registration email. A message has been sent to the administrator of this site.
Not all servers support the php mail function, and if your Joomla hosting provider does not, you're still in luck. To prevent the above error and to setup Joomla to be able to send email successfully, we have to adjust Joomla's email settings. Besides the php mail function, Joomla 3.0 can use Sendmail or SMTP. In this tutorial, we are going to walk you through the steps for setting up SMTP with Joomla 3.0
Configuring Joomla 3.0 to send emails using SMTP:
- Configure your sending email account
When emailing using SMTP, we are also going to setup SMTP Authentication. What this means is that we are going to setup Joomla to log into the server using a username and password, and then send email as that user. SMTP Authentication is much like using Microsoft Outlook or Mozilla Thunderbird: you enter your email settings, a password, and then you can use that email account.
Creating email accounts is not the same on each hosting provider. If you use InMotion Hosting or use cPanel, click here to learn how to create an email address. Otherwise, you should contact your hosting provider for more help with setting up a new email account.
Be sure to keep track of the email account and password that you use. In our testing, we created email@example.com.
- Log into your Joomla 3.0 admin dashboard
- In the left menu, click the Global Configuration link
- In the tabs at the top of the page, click the Server tab
- In the right column, find the Mail Settings. Update the settings as we describe below, and then click the Save button in the top left of the page.
Mailer Select SMTP From Email Enter the email address you created in step 1 above. In our testing, we entered firstname.lastname@example.org From Name Enter your name or the name of your website. In our testing, we entered Best Website Ever SendMail path Generally you can leave this setting alone SMTP Authentication Set SMTP Authentication to Yes SMTP Security If you want to send email, you may need to contact your hosting provider for the necessary settings. In our testing, set Security to SSL. SMTP Port As we are using SSL (see the setting above), we are setting the port to 465. Again, you may need to contact your joomla host for the correct settings. SMTP Username Enter the username of the email address you created in step 1. SMTP Password Enter the password of the email address you created in step 1. SMTP Host Most often, your STMP Host will be localhost. If you have any doubts, be sure you contact your joomla hosting provider for clarification.
You can see in the screenshot below how the settings looked when we saved them in Joomla 3.0. We then signed up as a new user within our Joomla 3.0 website, and you can see how some of the SMTP settings we configured (such as From email and From Name) show up in our email client.
SMTP Settings Within Joomla 3.0 An email sent by Joomla with our new SMTP Settings
‹Section 36: 307: Why is Joomla 3.1 not showing a custom error page?
›Section 38: 305: How to Change your Joomla 3.1 Database Settings
Joomla Community Google+ Hangout #3
June 3rd, 2014
Thank you @RustyJoomla for letting me speak on the Joomla Community Google+ Hangout!
Support Center Login
Social Media Login
2014-06-23 4:32 pm
We are a not-for-profit organization trying to host our Joomla! based website with hostinger.in. Email is very important to us, as members are required to create their account. After uploading our website in above host we found that authentication email is not being sent. We tried PHP mailer, Sendmail and SMTP without having any luck.
1. 1. Removed the whole website and fresh installed newly downloaded Joomla 3.3.1 without any sample data. No additional Extension installed.
2. 2. Tried PHP mail in following settings in Global Configuration > Server
Send Mail : Yes. Mailer: PHP Mail. From email: email@example.com. From name: Site name
Account is being created in the backend but no email sent. (Checked spam folder)
Tried Sendmail with the following settings…
Send Mail : Yes. Mailer: sendmail. From email: firstname.lastname@example.org. From name: Site name. Sendmail Path: /usr/sbin/sendmail
Tried SMTP with following settings…
Send Mail : Yes. Mailer: SMTP. From email: email@example.com. From name: Site name. SMTP Authentication: Yes and No tried both way. SMTP Security: None. SMTP Port: 2525. SMTP Username: firstname.lastname@example.org. SMTP Password: our password. SMTP Host: mx1.hostinger.in
Account is created in the backend but no email sent.
3. Install Thunderbird 24.6.0 (latest) in home PC. Configured the SMTP mail as per settings provided by the host. It works without any issue.
Thunderbird Setting (As seen in the Account Setting Panel)
Information provided by the host
i. POP3/IMAP Host: mx1.hostinger.in
ii. POP3 Port: 110
iii. IMAP Port: 143
iv. SMTP Host: mx1.hostinger.in
v. SMTP Port: 2525
vi. No SSL
PHP version can be chosen from the cpanel of the host, 5.2, 5.3, 5.4, 5.4. We tried with 5.3 and 5.4.
Any help in this regard will be highly appreciated.
2014-06-23 4:45 pm
I am unsure of why it would fail. It appears they are using a different port for SMTP standard, most of the time either 25 or 587 will work using non-SSL. As a shot in the dark, you may try those ports in case there was a miscommunication. Please give that a try and see if it works.
2017-04-28 2:13 pm
Hi, i followed all the steps above but and now i got this:
Notice SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Error Test mail could not be sent.
I searched for solutions on internet but they are too complicated, can someone help me in an easier way?Thanks
2017-04-28 2:29 pm
chieter, you will need to make sure that your SMTP settings are all correct, and functioning. Also, you will need to make sure your host provides SMTP service. If your settings are correct, I would recommend contacting your hosting provider.