2016-09-17 2 views
0

Я использую AJAX и PHP для отправки электронной почты с данными из контактной формы. Я использую следующий PHP:Отправить PHP подтверждение email admin отправлено

  if (mail($recipient, $subject, $email_content, $email_headers)) { 
       // Set a 200 (okay) response code. 
       http_response_code(200); 
      } else { 
       // Set a 500 (internal server error) response code. 
       http_response_code(500); 
       echo "Oops! Something went wrong and we couldn't send your message."; 
      } 

Это работает хорошо, но если это первое письмо будет отправлено, я также хотел бы отправить по электронной почте подтверждение с новыми параметрами. Я думал, что я мог бы просто установить другую функцию почты() после того, как код 200 ответа, как:

 if (mail($recipient, $subject, $email_content, $email_headers)) { 
      // Set a 200 (okay) response code. 
      http_response_code(200); 
      mail($email, $confirmation_subject, $confirmation_content, $confirmation_headers); 
     } else { 
      // Set a 500 (internal server error) response code. 
      http_response_code(500); 
      echo "Oops! Something went wrong and we couldn't send your message."; 
     } 

Но это вызывает ни электронной почты для отправки. Каков правильный способ реализации электронного письма с подтверждением при отправке электронной почты администратора.

+1

Это выглядит нормально, так что вам нужно сделать некоторые основные отладки, чтобы увидеть, что происходит. Используйте отладчик для выполнения кода. – Synchro

ответ

1

Когда вы отправляете заголовки назад, выполнение в основном останавливается. Я никогда не видел, чтобы это было задокументировано, но раньше я был этим доволен. Попробуйте изменить порядок этих двух:

http_response_code(200); 
mail($email, $confirmation_subject, $confirmation_content, $confirmation_headers); 

в

mail($email, $confirmation_subject, $confirmation_content, $confirmation_headers); 
http_response_code(200);