Jump to content

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 = "aaa.bbb@ccc.com";
 $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 <aaa.bbb@ccc.com>\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;
        });
Edited by cainam29
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 someone@AAA.com) 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)) {
Edited by DavidAM
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.