I am trying to send mail from localhost using PHP. I am using the following code to send the mail :-
<?php
$to = 'o****e#gmail.com';
$subject = 'hey You';
$message = 'Can you identify me :P';
$headers = 'From: at*****t#gmail.com' . "\r\n" .
'Reply-To: at*****t#gmail.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
At first, I tried to send the mail to myself(at*****t#gmail.com), it worked fine. However, after that, now if I am changing the $to, its still sending the mail to same ID(mine) with the previous contents(not the updated one).
Is my request getting cached somehow ? Why every mail is being repeatedly sent to me irrespective of change in both contents and $to ?
Go to your php.ini file and change SMTP = localhost to SMTP = aspmx.l.google.com and uncomment sendmail_from and put in your sending gmail address. and set smtp_port = 25
Restart localhost
Related
I am using first time mail function in php i get a code from online and it implemented to my program but its not working. Can any please help me to correct this ?
<?php
$to = "ganesh.sunraise#gmail.com";
$subject = "This is subject";
$message = "<b>This is HTML message.</b>";
$message .= "<h1>This is headline.</h1>";
$header = "From:lokesh.sunraise111#gmail.com ";
$retval = mail ($to,$subject,$message,$header);
if( $retval == true ) {
echo "Message sent successfully...";
}else {
echo "Message could not be sent...";
}
?>
First, please tell, are you getting "Message sent successfully.." message.
There are many reasons for mail is not working:
Your server does not support send mail.
Please try below method:
<?php
$to = 'nobody#example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster#example.com' . "\r\n" .
'Reply-To: webmaster#example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
or use:
PHPmailer
You need to setup the email server locally, or you can use 3-rd party email server to send email from your web server. Added the following lines to your php.ini to send email using gmail.
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
error_logfile=error.log
auth_username=your-gmail-username#gmail.com
auth_password=your-gmail-password
You can use SMTP as the others suggested, and this can be done using the PHPMailer library.
However, there's another suggestion and this is the one that I prefer (because SMTP may contain some problems that you've to search about them and fix them).
The other suggestion is to use a PHP mailling API like SendGrid or Mailgun - (I prefer SendGrid).
Basic SendGrid integration with PHP:
Download SendGrid from here https://github.com/sendgrid/sendgrid-php/releases/download/v6.2.0/sendgrid-php.zip - or follow the installation instructions for another ways for installation.
Unzip the SendGrid-PHP library and upload it to your server.
Use this sample code (edit it for your needs): https://github.com/sendgrid/sendgrid-php#quick-start
I have Postfix and SquirrelMail configured on my server. And user called noreply. So, I am logging to SquirrelMail and sending email to some address. Everything works fine, i am receiving email from noreply#mydomain.com. But when I try to send email from php using mail(),
mail ('test#2ether.net', 'Postfix Test', 'A test email');
server tries to send it from address www-data#mydomain.com. How do I configure it to send emails from noreply#mydomain.com?
I would use PEARMail it is designed to counter such issues, (PHP's "mail()" method is all but useless in today's email meta - too many bots used it ) however the actual answer is this:
$to = 'test#2ether.net';
$subject = 'Postfix Test';
$message = 'A test email';
$headers = 'From: noreply#mydomain.com' . "\r\n" .
'Reply-To: noreply#mydomain.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
I setup sendmail in linux server, I use my gmail.com accaunt as mail collector. I can send mail to different mail address in web, but I can not set my field from: in mail, the from: always set as my mail address... How to I can set my custom email address on field from: in mail?
p.s. sorry for my English.
You can do this by setting header as:
$headers = 'From: username#domain.com' . "\r\n" .
'Reply-To: username#domain.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
Then you can use:
mail($to, $subject, $body, $headers) to send mail where $to, $subject and $body are self explanatory variables.
For more info: visit http://php.net/manual/en/function.mail.php
I am facing e-mail sending problem.
e-mail does not send through my e-mail function.
My code is given below:
ini_set("sendmail_from",$_POST['email']);
$to = 'email#gmail.com';
$subject = $_POST['subject'];
$from = $_POST['email'];
$message = $_POST['message'];
$message = wordwrap($message, 70);
mail($to,$subject,$message,$from);
You have to setup your SMTP mail server and mention those details in php.ini before executing your script. For further info, please check http://www.phpeasystep.com/phptu/23.html
In your code you have to set proper header,
you have used $from for header section of mail.
change its value as
$from= 'From: '.$_POST['email']. "\r\n" .
'Reply-To: '.$_POST['email'] . "\r\n" .
'X-Mailer: PHP/' . phpversion();
or you can use below solution.
Use PHPMailer API for sending mail. all are inbuilt there.
download complete code form below link
PHPMailer API
goodluck
I am trying to set up a php script that would send an email to selected users, I looked on the internet and found out how but can't run the script cos I get the following error:
Warning: mail() [function.mail]:
"sendmail_from" not set in php.ini or
custom "From:" header missing in
E:\Program
Files\xampp\phpMyAdmin\emailer.php on
line 10
Here is the code of the script I designed following examples:
<?php
$recipient = "<ismael.srcyber#gmail.com>";
$subject = "Flight Status";
$body = "Flight has just landed.";
$host = "ssl://smtp.gmail.com";
$port = "465";
if(mail($recipient, $subject, $body))
{
echo("<p>Message successfully sent</p>");
}
else
{
echo("<p>Message Delivery failed </p>");
}
?>
Thanks in advance.
As the error suggest you must add the default "from" field (who sends the mail) in php.ini:
SMTP = localhost
sendmail_from = me#localhost.com
And then restart apache
Otherwise you can set it dinamically as the fourth parameter as stated in the php manual (look http://php.net/manual/en/function.mail.php)
Note:
When sending mail, the mail must
contain a From header. This can be set
with the additional_headers parameter,
or a default can be set in php.ini.
Failing to do this will result in an
error message similar to Warning:
mail(): "sendmail_from" not set in
php.ini or custom "From:" header
missing. The From header sets also
Return-Path under Windows.
Example:
<?php
$to = 'nobody#example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster#example.com' . "\r\n" .
'Reply-To: webmaster#example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);