Lucas M.
Lucas M.

Reputation: 145

PHP only sending one mail() in a page

All of sudden, my PHP code that sends an email after someone registers on a form stopped working. I'm cracking my head trying to figure out what is going on...

I already tested a little piece of code emailing myself and it works. I observed the console window in Chrome while the page executes, but it doesn't show any errors.

The code sends me an email with the form info and sends an email to the user's inbox telling that the registration was successful.

// SENDING EMAIL

//To me
$line_break = "\r\n";
$emailSender = "[email protected]";
$emailTOme = "[email protected]";
$cco = "[email protected]";
$subject= "my subject";
$messageHTML = '
    <p>Nome.......: ' . $nome . '</p>
    <p>E-mail.......: '.$email . ' </p>
    <p>Profissão.......: '. $profissao . '  </p>
    <p>Endereço.....: '. $endereco . ', ' . $endereco_num . ' </p>
    <p>Complemento.....: '. $complemento . '</p>
    <p>Bairro.......: ' . $bairro . ' </p>
    <p>CEP..........: '. $cep . ' </p>
    <p>Cidade.......: ' . $cidade . ' </p>
    <p>UF...........: ' . $uf . ' </p>
    <p>Telefone.....: ' . $telefone . ' </p>
    <p>Celular......: ' . $celular . ' </p>
    <p>Inscrição p/.: ' . $evento . '</p>
    <p>Valor da inscrição: <b>R$' . $valor_inscricao . '</b></p>';

$headers = "MIME-Version: 1.1" . $line_break;
$headers .= "Content-type: text/html; charset=iso-8859-1". $line_break;
$headers .= "From: " . $emailSender . $line_break;
$headers .= "Return-Path: " . $emailSender . $line_break;
$headers .= "Bcc: " . $cco . $line_break;
$headers .= "Reply-to: " .  $emailSender . $line_break;

mail($emailTOme , $subject, $messageHTML,$headers, $emailSender);  

//email for the user
$messageHTMLuser = '
    <p> Lorem </p>
    <p> Ipsum </b></p>';


$headers2 = "MIME-Version: 1.1" . $line_break;
$headers2 .= "Content-type: text/html; charset=iso-8859-1". $line_break;
$headers2 .= "From: " . $emailSender . $line_break;
$headers2 .= "Return-Path: " . $emailSender . $line_break;
$headers2 .= "Reply-to: " .  $emailSender . $line_break;

mail($email, 'We recieved your registration', $messageHTMLuser, $headers2, $emailSender);

The problem is that now only the second mail() function works.

The $email on the second function comes from the previous form.

Upvotes: 3

Views: 93

Answers (2)

Reto
Reto

Reputation: 1343

Try to comment out the "BCC" line.

As the current php mail don't support this option (anymore) - apparantly as a way to avoid bcc-form-spamers..

In order to use advanced email functions, you would probably be better off using PHPMailer (or a similar lib): https://packagist.org/packages/phpmailer/phpmailer

Upvotes: 2

Addil
Addil

Reputation: 105

Add this to the start of your script and it should show you your errors (if any) at the top of the page.

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

Upvotes: 0

Related Questions