J'ai donc un simple fichier php qui récupère les données d'un formulaire et qui est sensé m'envoyer un email. Cela fonctionne sur mon propre système quand je le testais sur localhost. Mais, quand je l'ai déployé sur ubuntu en utilisant apache2, ça n'a pas marché. le fichier ne peut pas être joli, ma première tentative d'envoyer un courriel avec php, mais j'ai inclus le fichier php ci-dessous. Je sais qu'il arrive à la méthode mail() et échoue, il active le (! $ Mail) conditionnel, mais je ne peux jamais imprimer $ mail ou des erreurs donc je n'ai aucune idée de ce qui ne va pas. des idées? Le groupe d'échos a été ma tentative d'imprimer une sorte de message d'erreur sans aucune chance. En outre, je vous envoie en fait à mon adresse e-mail, je viens de changer pour cet exemplephp mail() ne pas envoyer de mail ou retourner un message d'erreur, travaillé sur mon système (localhost) mais pas sur ubuntu/apache2
<?php
if(!isset($_POST['submit'])){
echo "error; you need to submit the form!";
}
$visitor_name = $_POST['name'];
$visitor_message = $_POST['message'];
//incase the email isn't provided
if(empty($_POST['email'])){
$visitor_email = 'n/a';
} else {
$visitor_email = $_POST['email'];
}
//incase the phone isn't provided
if(empty($_POST['phone'])){
$visitor_phone = 'n/a';
} else {
$visitor_email = $_POST['email'];
}
//incase the phone isn't provided
if(empty($_POST['phone'])){
$visitor_phone = 'n/a';
} else {
$visitor_phone = $_POST['phone'];
}
if(empty($visitor_name) || empty($visitor_message))
{
echo "Name and message are mandatory!";
exit;
}
//a function created below for security purposes
if(IsInjected($visitor_email))
{
echo "Bad email value!";
exit;
}
// **************************** CODE FOR EMAIL BODY BELOW *****************************************
$email_body = '<html><body>';
$email_body .= "<h2> You've recieved a new message from: $visitor_name, they need a building </h2>";
$email_body .= '<h4> Here is the message: </h4>';
$email_body .= "<p> $visitor_message </p>";
$email_body .= "<h4> Their contact info is below</h4>";
$email_body .= "<ul> <li> email: $visitor_email </li>";
$email_body .= "<li> phone: $visitor_phone </li></ul>";
$email_body .= '</body></html>';
// **************************** END OF CODE FOR EMAIL BODY ****************************************
$to = '[email protected]';
$subject = "Building Form Submission: $visitor_name Needs a building\r\n";
$headers = "From: [email protected] \r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
if($visitor_email != 'n/a'){
$headers .= "Reply-To: $visitor_email \r\n";
}
$mail = mail($to, $subject, $email_body, $headers);
print_r ($mail);
echo "end test";
if (!$mail){
echo "Message not sent, there was an error. Please contact Jerrod at .....";
$errorMessage = error_get_last();
echo "There was an error: $errorMessage";
echo "Below the error is printed : ";
print_r(error_get_last());
} else {
echo "Message sent";
header('Location: end.html');
}
// Function to validate against any email injection attempts
function IsInjected($str)
{
$injections = array('(\n+)',
'(\r+)',
'(\t+)',
'(%0A+)',
'(%0D+)',
'(%08+)',
'(%09+)'
);
$inject = join('|', $injections);
$inject = "/$inject/i";
if(preg_match($inject,$str))
{
return true;
}
else
{
return false;
}
}
?>
le problème est qu'il n'est pas envoyé du tout – Jerrod
Est-ce votre propre serveur (local ou virtuel) ou êtes-vous sur un environnement d'hébergement partagé? –
cela a fonctionné sur mon propre serveur (localhost), mais le problème est sur aws ubuntu avec apache2 – Jerrod