Sending email with PHP from an SMTP server

php send email smtp gmail
send mail using smtp in php example download
send mail without smtp server php
how to send email automatically using php
php script to send email from web form
mail cannot be sent you need php server to send mail
php mail = $smtp authentication
php send email with mysql data
$from = "";
$headers = "From:" . $from;
echo mail ("" ,"testmailfunction" , "Oj",$headers);

I have trouble sending email in PHP. I get an error: SMTP server response: 530 SMTP authentication is required.

I was under the impression that you can send email without SMTP to verify. I know that this mail will propably get filtered out, but that doesn't matter right now.

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
sendmail_from =

This is the setup in the php.ini file. How should I set up SMTP? Are there any SMTP servers that require no verification or must I setup a server myself?

When you are sending an e-mail through a server that requires SMTP Auth, you really need to specify it, and set the host, username and password (and maybe the port if it is not the default one - 25).

For example, I usually use PHPMailer with similar settings to this ones:

$mail = new PHPMailer();

// Settings
$mail->CharSet = 'UTF-8';

$mail->Host       = ""; // SMTP server example
$mail->SMTPDebug  = 0;                     // enables SMTP debug information (for testing)
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Port       = 25;                    // set the SMTP port for the GMAIL server
$mail->Username   = "username"; // SMTP account username example
$mail->Password   = "password";        // SMTP account password example

// Content
$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';


You can find more about PHPMailer here:

PHP mail() and SMTP Authentication - Knowledgebase, When you are sending an e-mail through a server that requires SMTP Auth, you really need to specify it, and set the host, username and password (and maybe  When you use the PHP mail function, you are sending email directly from your web server. This can cause issues if the FROM address isn’t set properly or if your email isn’t hosted with DreamHost. Sending mail via SMTP is recommended as email is sent from the mail server rather than the web server.

ini_set("SMTP", "");
ini_set("sendmail_from", "");

$message = "The mail message was sent with the following mail setting:\r\nSMTP =\r\nsmtp_port = 25\r\nsendmail_from =";

$headers = "From:";

mail("", "Testing", $message, $headers);
echo "Check your email now....&lt;BR/>";

or, for more details, read on.

Sending email with PHP from an SMTP server, Overview When you use the PHP mail function, you are sending email directly from your web server. This can cause issues if the FROM The other side of the PHP mail function () is that the email is sent from your web server, which may cause issues with deliverability due to security concerns such as suspicion of spam and blacklisting. The best way to overcome this problem is sending messages via an SMTP server, however,

For Unix users, mail() is actually using Sendmail command to send email. Instead of modifying the application, you can change the environment. msmtp is an SMTP client with Sendmail compatible CLI syntax which means it can be used in place of Sendmail. It only requires a small change to your php.ini.

sendmail_path = "/usr/bin/msmtp -C /path/to/your/config -t"

Then even the lowly mail() function can work with SMTP goodness. It is super useful if you're trying to connect an existing application to mail services like sendgrid or mandrill without modifying the application.

How do I send PHP mail via SMTP? – DreamHost Knowledge Base, Before starting with steps on how to send mail using SMTP in PHP example, lets first see what are few limits with Gmail SMTP servers and how  Sending an email with PHP’s core function mail() is simpler. This function is too simple and lacks advanced features for sending an email. For example, we cannot send attachments using PHP’s mail(). In this tutorial, let’s use PHPMailer class for sending emails by using Gmail SMTP server. This library is popular because of its advanced

Here is a way to do it with PHP PEAR

// Pear Mail Library
require_once "Mail.php";

$from = '<>'; //change this to your email address
$to = '<>'; // change to address
$subject = 'Insert subject here'; // subject of mail
$body = "Hello world! this is the content of the email"; //content of mail

$headers = array(
    'From' => $from,
    'To' => $to,
    'Subject' => $subject

$smtp = Mail::factory('smtp', array(
        'host' => 'ssl://',
        'port' => '465',
        'auth' => true,
        'username' => '', //your gmail account
        'password' => 'snip' // your password

// Send the mail
$mail = $smtp->send($to, $headers, $body);

//check mail sent or not
if (PEAR::isError($mail)) {
    echo '<p>'.$mail->getMessage().'</p>';
} else {
    echo '<p>Message successfully sent!</p>';

If you use Gmail SMTP remember to enable SMTP in your Gmail account, under settings

How to Send an Email via Gmail SMTP Server using PHP, PHP mail() does not usually allow you to use the external SMTP server and it does not support SMTP  PHP provides a mail() function which used to send an email. But there are limitations while using mail() method. You can’t send email from a local development server. Another drawback is, there is a high possibility of your email ended up into a Spam folder. To get out of these problems,

The problem is that PHP mail() function has a very limited functionality. There are several ways to send mail from PHP.

  1. mail() uses SMTP server on your system. There are at least two servers you can use on Windows: hMailServer and xmail. I spent several hours configuring and getting them up. First one is simpler in my opinion. Right now, hMailServer is working on Windows 7 x64.
  2. mail() uses SMTP server on remote or virtual machine with Linux. Of course, real mail service like Gmail doesn't allow direct connection without any credentials or keys. You can set up virtual machine or use one located in your LAN. Most linux distros have mail server out of the box. Configure it and have fun. I use default exim4 on Debian 7 that listens its LAN interface.
  3. Mailing libraries use direct connections. Libs are easier to set up. I used SwiftMailer and it perfectly sends mail from Gmail account. I think that PHPMailer is pretty good too.

No matter what choice is your, I recommend you use some abstraction layer. You can use PHP library on your development machine running Windows and simply mail() function on production machine with Linux. Abstraction layer allows you to interchange mail drivers depending on system which your application is running on. Create abstract MyMailer class or interface with abstract send() method. Inherit two classes MyPhpMailer and MySwiftMailer. Implement send() method in appropriate ways.

Sending Emails in PHP, In this guide, we'll show you how to send emails using PHP mail() function. We'll also introduce you to PHPMailer and SMTP. $mail->. All similar variables contain vital information, such as server details, message headers,  SMTP is an internet standard for electronic mail, i.e., email. All mail servers and other mail transfer agents use SMTP to send and receive emails. Firstly, we’ll take a look at thePHPMailer library we’re going to use. You can take this library as an alternative of mail() function in PHP.

How to Send Emails Using PHP Mail and PHPMailer: A Complete , 4) Open the sendmail.ini and modify the settings to: [sendmail] ; you must change to your smtp server, ; or to IIS's "pickup" directory. I am trying to send email using php. The mail is returning true. But I am receiving the email. So I am guessing that maybe there is some problem with the server. Is there any tutorial saying how to configure the server to properly send email using cpanel. Please help me. I am stuck for hours. If you want to see my code then my code is given below.

Mail Functions - Manual, The PHP mail() function is simple, easy to use, and works great, but it's also extremely inflexible. If you want to specify an SMTP server for the  I am trying to send an email via GMail's SMTP server from a PHP page, but I get this error: authentication failure [SMTP: SMTP server does no support authentication (code: 250, response: at your service, [] SIZE 35651584 8BITMIME STARTTLS ENHANCEDSTATUSCODES PIPELINING)] C

How to Send Email From a PHP Script Using SMTP Authentication, PHP mailer uses Simple Mail Transmission Protocol (SMTP) to send mail. On a hosted server, the SMTP settings would have already been set. In this tutorial, you will learn how to send email in PHP using PHPMailer library via Gmail SMTP. Like PHPMailer, there are few more good email sending libraries in PHP e.g. PEAR::Mail interface, Swiftmailer etc which can help you easily send mail in php using gmail smtp.

  • +1 for phpMailer -- its the sane persons alternative to PHP's built in mail() function.
  • It's worth noting for those stumbling on this answer that PHPMailer is also built into WordPress and can be configured using the 'phpmailer_init' action hook. It's a convenient way to set up WordPress for SMTP mail or Amazon SES (which supports SMTP connections).
  • Is PHP Mailer allowed to be used in paid scripts?
  • @Luka Yes, it is. According to their license file PHPMailer uses the LGPL 2.1 license, which allows commercial usage.
  • Do I need to do anything special to use this code? Where do I put this? Can I call it with an HTML5 form with a POST request? How do I send an Email once I created this PHPMailer object?
  • The IP you're using to send mail is not authorized to 550-5.7.1 send email directly to our servers. I get this error. all I want is a open mail relay.
  • I dont have a static IP. Do you know of any Open mail relay.
  • Additionally see for google SMTP relays.
  • This is the best answer for godaddy php mail() function issues - 2017 - shouldn't have to download PHPMailer or some other 3rd party resource - thanks
  • "READ ON" link is broken
  • Great solution, use it on multiple servers now!
  • Implementing this on my Docker containers for apps that don't use a mailing library.