0

I'm trying to use this coding but its not processing, and its not outputing any errors.

function send_email($subject='Activate Your Account', $html_content, $text_content, $headers) { 

    $en['email'] = '[email protected]';
    $to = $en['email'];
    $en['memb_id'] = '39';
    $en['confcode'] = '69696969';
    $en['user'] = 'couple';

    $text_content = "Confirm Your domain.com Account\r\n";
    $text_content.= "UserName: " . $en['user'] . "\r\n";
    $text_content.= "Activate Your Account by visiting this link below:\r\n";
    $text_content.= "http://www.domain.com/confirm/" . $en['memb_id'] . "/" . $en['confcode'] . "\r\n";
    $text_content.= "\r\n";
    $text_content.= "______________________\r\n";
    $text_content.= "Thanks,\r\n";
    $text_content.= "Staff";

    $html_content = "<html><body><h1>Confirm Your domain.com Account</h1>";
    $html_content.= "<p>UserName: " . $en['user'] . "<br>";
    $html_content.= "Activate Your Account by visiting this link below:<br>";
    $html_content.= "<a href=http://www.domain.com/confirm/" . $en['memb_id'] . "/" . $en['confcode'] . ">http://www.domain.com/confirm/" . $en['memb_id'] . "/" . $en['confcode'] . "</a>";
    $html_content.= "</p>";
    $html_content.= "______________________<br>";   
    $html_content.= "Thanks,<br>";
    $html_content.= " Staff";
    $html_content.= "</body></html>";

    $mime_boundary = 'Multipart_Boundary_x'.md5(time()).'x';

    $headers = "MIME-Version: 1.0\r\n";
    $headers.= "Content-Type: multipart/alternative; boundary=\"$mime_boundary\"\r\n";
    $headers.= "Content-Transfer-Encoding: 7bit\r\n";

    $body = "This is a multi-part message in mime format.\n\n";
    $body.= "--$mime_boundary\n";
    $body.= "Content-Type: text/plain; charset=\"charset=us-ascii\"\n";
    $body.= "Content-Transfer-Encoding: 7bit\n\n";
    $body.= $text_content;
    $body.= "\n\n";

    $body.= "--$mime_boundary\n";
    $body.= "Content-Type: text/html; charset=\"UTF-8\"\n";
    $body.= "Content-Transfer-Encoding: 7bit\n\n";
    $body.= $html_content;
    $body.= "\n\n";
    $body.= "--$mime_boundary--\n";

    $headers.= 'From: <[email protected]>' . "\r\n";
    $headers.= "X-Sender-IP: $_SERVER[SERVER_ADDR]\r\n";
    $headers.= 'Date: '.date('n/d/Y g:i A')."\r\n";
    $headers.= 'Reply-To: <[email protected]>' . "\r\n";

    return mail($to, $subject, $body, $headers);
    echo $to;
    echo $subject;
    echo $body;
    echo $headers;
    }
4
  • 2
    Are you sure you have a mail server configured on your server? if not, then that's the problem. Commented Apr 11, 2010 at 0:57
  • 1
    Can you give more details on what it is doing? Commented Apr 11, 2010 at 0:57
  • Are you sure all the variables are set correctlY? ex: you have a $header as to $headers Commented Apr 11, 2010 at 1:03
  • yes my mail server is configured correctly i've been using an old mail() code, i'm trying to upgrade to something that will do html & text Commented Apr 11, 2010 at 2:29

3 Answers 3

2

The last bit has me confused:

return mail($to, $subject, $body, $headers);
echo $to;
echo $subject;
echo $body;
echo $headers;

You know that none of those echo statements are going to get executed because they are after the return right?

Try using error_log to verify steps in the script or viewing the error log itself if you haven't tried that.

Sign up to request clarification or add additional context in comments.

Comments

1

Use PHPMailer/Lite. Save yourself the MIME headache.

require_once('../class.phpmailer.php');

$mail             = new PHPMailer(); // defaults to using php "mail()"

$body             = file_get_contents('contents.html');
$body             = eregi_replace("[\]",'',$body);

$mail->AddReplyTo("[email protected]","First Last");

$mail->SetFrom('[email protected]', 'First Last');

$mail->AddReplyTo("[email protected]","First Last");

$address = "[email protected]";
$mail->AddAddress($address, "John Doe");

$mail->Subject    = "PHPMailer Test Subject via mail(), basic";

$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->MsgHTML($body);

$mail->AddAttachment("images/phpmailer.gif");      // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}

Comments

1

Here, I fixed it for you. I checked it and it's working good. Also make sure that your hosting supports mail() function. If SMTP is not enabled, then you wont be able to send mail for sure.

REVISED CODE:

<?php 
function send_email($subject='Activate Your Account') { 

    $en['email'] = '[email protected]';
    $to = $en['email'];
    $en['memb_id'] = '39';
    $en['confcode'] = '69696969';
    $en['user'] = 'couple';

    $text_content = "Confirm Your domain.com Account\r\n";
    $text_content.= "UserName: " . $en['user'] . "\r\n";
    $text_content.= "Activate Your Account by visiting this link below:\r\n";
    $text_content.= "http://www.domain.com/confirm/" . $en['memb_id'] . "/" . $en['confcode'] . "\r\n";
    $text_content.= "\r\n";
    $text_content.= "______________________\r\n";
    $text_content.= "Thanks,\r\n";
    $text_content.= "Staff";

    $html_content = "<html><body><h1>Confirm Your domain.com Account</h1>";
    $html_content.= "<p>UserName: " . $en['user'] . "<br>";
    $html_content.= "Activate Your Account by visiting this link below:<br>";
    $html_content.= "<a href=http://www.domain.com/confirm/" . $en['memb_id'] . "/" . $en['confcode'] . ">http://www.domain.com/confirm/" . $en['memb_id'] . "/" . $en['confcode'] . "</a>";
    $html_content.= "</p>";
    $html_content.= "______________________<br>";   
    $html_content.= "Thanks,<br>";
    $html_content.= " Staff";
    $html_content.= "</body></html>";

    $mime_boundary = 'Multipart_Boundary_x'.md5(time()).'x';

    $headers = "MIME-Version: 1.0\r\n";
    $headers.= "Content-Type: multipart/alternative; boundary=\"$mime_boundary\"\r\n";
    $headers.= "Content-Transfer-Encoding: 7bit\r\n";

    $body = "This is a multi-part message in mime format.\n\n";
    $body.= "--$mime_boundary\n";
    $body.= "Content-Type: text/plain; charset=\"charset=us-ascii\"\n";
    $body.= "Content-Transfer-Encoding: 7bit\n\n";
    $body.= $text_content;
    $body.= "\n\n";

    $body.= "--$mime_boundary\n";
    $body.= "Content-Type: text/html; charset=\"UTF-8\"\n";
    $body.= "Content-Transfer-Encoding: 7bit\n\n";
    $body.= $html_content;
    $body.= "\n\n";
    $body.= "--$mime_boundary--\n";

    $headers.= 'From: <[email protected]>' . "\r\n";
    $headers.= "X-Sender-IP: $_SERVER[SERVER_ADDR]\r\n";
    $headers.= 'Date: '.date('n/d/Y g:i A')."\r\n";
    $headers.= 'Reply-To: <[email protected]>' . "\r\n";

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

    }

?>

Hope that helps. Let us know.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.