Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

smtp configuration for php mail

Tags:

php

email

smtp

I am sending mails from my website by using php mail function. But now it is not working and I contacted our hosting team then they told me to use smtp as they did some changes in server. I don't know how to do it. Current code (with php mail function) is as follows, can anyone help me about the changes which I have to do with this.

<?php
$mail_To="[email protected]";
$headers = "";
$headers .= "From: [email protected]\n";
$headers .= "Reply-To: [email protected]\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "X-Mailer: php";
$mail_Subject = " Live TV key";
$mail_Body = "<p>Muscle-tube</p>";
mail($mail_To, $mail_Subject, $mail_Body,$headers);
?>
like image 578
shin Avatar asked Aug 19 '10 20:08

shin


People also ask

What SMTP does PHP mail use?

PHP mailer uses Simple Mail Transmission Protocol (SMTP) to send mail. On a hosted server, the SMTP settings would have already been set. The SMTP mail settings can be configured from “php. ini” file in the PHP installation folder.

Does PHP mail need SMTP?

Simple Transmission Protocol (SMTP) ini file. But this will only work for localhost or XAMPP like solutions because as we have already mentioned, PHP mail() function does not support SMTP authentication and doesn't allow sending messages via external servers.

What is PHP mail configuration?

The php. ini file is where you configure your PHP installation. This is the file you need to edit in order to configure PHP to send mail. You need to ensure that the php. ini file contains details of the mail server that should be used whenever your application sends mail.


1 Answers

PHP's mail() function does not have support for SMTP. You're going to need to use something like the PEAR Mail package.

Here is a sample SMTP mail script:

<?php
require_once("Mail.php");

$from = "Your Name <[email protected]>";
$to = "Their Name <[email protected]>";
$subject = "Subject";
$body = "Lorem ipsum dolor sit amet, consectetur adipiscing elit...";

$host = "mailserver.blahblah.com";
$username = "smtp_username";
$password = "smtp_password";

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

$smtp = Mail::factory('smtp', array ('host' => $host,
                                     'auth' => true,
                                     'username' => $username,
                                     'password' => $password));

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

if ( PEAR::isError($mail) ) {
    echo("<p>Error sending mail:<br/>" . $mail->getMessage() . "</p>");
} else {
    echo("<p>Message sent.</p>");
}
?>
like image 171
JCD Avatar answered Sep 29 '22 08:09

JCD