How can i make this script work?
It is meant to send an email to a person with a confirmation code, but it is not working. whats wrong with it?

<?php

 function send_mail($fromname,$frommail,$to,$subject,$body,$priority)
  {
    $fullmail = "\"$fromname\"<$frommail>";
    $headers  = "From: $fullmail\n";
    $headers .= "X-Sender: $fullmail\n";
    $headers .= "X-Mailer: PHP\n";
    $headers .= "X-Priority: $priority\n";
    $headers .= "Return-path: $fullmail\n";

    mail($to,$subject,$body,$headers);
  }

 function send_html_mail($fromname,$frommail,$to,$subject,$body,$priority)
  {
    $fullmail = "\"$fromname\"<$frommail>";
    $headers  = 'MIME-Version: 1.0' . "\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
    $headers .= "From: $fullmail\n";
    $headers .= "X-Sender: $fullmail\n";
    $headers .= "X-Mailer: PHP\n";
    $headers .= "X-Priority: $priority\n";
    $headers .= "Return-path: $fullmail\n";

    mail($to,$subject,$body,$headers);
  }

?>

Recommended Answers

All 7 Replies

What kind of error are you getting? The odds are the problem lies somewhere else in the code.

We can't debug unless we know what the problem is :) The format for the output should be headers, then a single blank line, and then the message.

Well, its just not sending the email at all!

You'll need to echo out some variables in your script to make sure you have the right information there and to make sure you are getting there at all.

What OS is your server on?

Windows requires an SMTP server.

Its clustered linux servers i think

Its clustered linux servers i think

Check first with your hosting company support and see if they have mail() set up properly. If they either you have a problem with your code or your mail may be blocked or added to spam.

You'll need to place some debugging into your code.

for starters:

if (!mail(....)) {
echo 'Mail is not working... ';
}

mail() will return Boolean true or false if working or not respectively.

Set your error reporting to max:

error_reporting(E_ALL);

ini_set('display_errors', 'true'); // not sure bout this one, I think thats the correct config option

Just try a simple mail() first.. don't use the abstraction function "send_mail".. just to test if its working.

Check if your hosting company's mail servers are not blacklisted.
Send emails to a few different addresses to make sure its not specific to an email address...

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.