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
We value your feedback!
There is a step or detail missing from the instructions.
The information is incorrect or out-of-date.
It does not resolve the question/problem I have.
new! - Enter your name and email address above and we will post your feedback in the comments on this page!
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.