Is it possible to send mail in core php via gmail smtp without using any external class?
5 Answers
I don't think it is possible because you need to perform an authentification. Also, you need to connect via an SSL socket, I don't know if the stock mail()
function support this.
If you are willing to use the Pear Mail package, you might want to take a look at this:
There's a lot of miscommunication about this. It is 100% possible to send emails using gmail via PHP's simple "mail()" command. And it is 100% easy.
Install SSMTP:
sudo apt-get install ssmtp
Edit its settings file:
sudo nano /etc/ssmtp/ssmtp.conf
Inside, make it similar to this, but with your own credentials:
mailhub=smtp.gmail.com:587
[email protected]
AuthPass=password
UseSTARTTLS=YES
# You can only do this if you've verified your domain with Gmail.
# If you haven't, delete, or add a # before this
hostname=yourwebsite.com
FromLineOverride=YES
Lastly, open your php.ini, and search for sendmail_path and use this value:
sendmail_path = /usr/sbin/ssmtp -t
That's it! Test it out in your PHP, with the simple 1-line mail function:
mail('[email protected]', 'Subject', 'Message', 'From: Your name <[email protected]>');
Update on Gmail Security
Gmail now blocks this by default. You can still do this by visiting: http://www.google.com/settings/security/lesssecureapps
Turn this feature ON.
It is possible, although you have to modify php.ini settings, see the PHP manual. You can modify php.ini settings at runtime with ini_set
If you have access to edit the php.ini
then you can do something like this:
[mail function]
SMTP = ssl://smtp.gmail.com
smtp_port = 465
username = [email protected]
password = myemailpassword
sendmail_from = [email protected]
Alternatively you can do:
<?php
ini_set( 'smtp_port', 465 );
//etc
mail()
, instead of including a 600 line library. – gavanon