Jump to content

php mail function not working


cainam29

Recommended Posts

need help, mail function not working...i would want to send an email after i generated the report and fill in the two textfield from the generated report

 

here is my php mail code:

<?php
//for getting the variable in the URL
$WirelessRemaining= $_GET['WirelessRemaining'];
$WirelineRemaining = $_GET['WirelineRemaining'];
$date1 = $_POST['date1'];
$output= $_POST['output'];

require 'include/DB_Open.php';
 
 $to = "[email protected]";
 $subject = "Test, $date1";
 $body = "$output";
    

 $headers = 'MIME-Version: 1.0' . "\r\n";
 $headers .= 'Content-Type: text/html; charset=ISO-8859-1' . "\r\n";
 $headers .= "From: aaa bbb <[email protected]>\r\n";
 
 if (mail($to, $subject, $body)) {
   echo("<p>Message successfully sent!</p>");
  } else {
   echo("<p>Message delivery failed...</p>");
  }

include 'include/DB_Close.php';  
?>

this codes would have values coming from the generated report, which was performed by another php page

$WirelessRemaining= $_GET['WirelessRemaining'];
$WirelineRemaining = $_GET['WirelineRemaining'];

while this is a date field from my main php page where the email button would be click to send mail

$date1 = $_POST['date1'];

and this is from the output of my report generator:

$output= $_POST['output'];

here is how i call the mail php page

$("#Email").on('click',function() {
            var date1 = $('#Date').val();
            var output = $('#report_sample.php').val();
$.post('mail.php',{date1:date1, output:output}, function(data){
$("#results").html(data);
});
return false;
        });
Link to comment
https://forums.phpfreaks.com/topic/277701-php-mail-function-not-working/
Share on other sites

You did NOT supply the $headers variable to the mail function call. Unless you have the FROM address set correctly in the php.ini, the mail server probably refused to relay the message because the FROM address is not "valid" or is missing. I say refused, because the TRUE response from mail() simply means that PHP ran the function and handed the message to the appropriate agent. PHP does NOT know if the mail server rejects the message (in general). [You handed the envelope to the postman, you did not see the clerk at the office throw it in the floor because he does not like red-crayon-addressed letters]

 

Remember, the FROM address needs to be one that has authority to send mail using the SMTP mail server you are accessing. For instance, if you use the SMTP server at AAA.com and use a from address of BBB.com, the mail server may decide the email is forged (it's not coming from [email protected]) and refuse to relay it, or give it a high spam score.

 

P.S. I have used mail from Linux for some very complex stuff. The first time I did it on a Windows 7 box running WAMP, I was surprised to see the message go with no real problem. I was fully expecting it to fail and was prepared to start searching for a sendmail() alternative, but thankfully that was not necessary.

I saw that. What i was saying was that you did not pass $headers to the mail() function

 

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-Type: text/html; charset=ISO-8859-1' . "\r\n"; 
$headers .= "From: aaa bbb \r\n"; 

 if (mail($to, $subject, $body)) {

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.