Witam.
Mam skrypt służący do wysyłania wiadomości email z poziomu strony internetowej. Chcę aby adresat był wybierany z pola 'select' w formularzu.
W owym polu posiadam dwie opcje z różniącymi się od siebie emailami jako wartość 'value'. Niestety kiedy w kodzie PHP jako email podam "$_POST['getemail']" mail nie dociera do adresata. Kiedy zaś zamiast wartości $_POST wpiszę po prostu adres emailowy, wiadomość dochodzi bez problemu.
HTML <form action="contact.php" method="post" id="contactform"> <input id="name" name="name" class="text" /> <input id="email" name="email" class="text" /> <input id="subject" name="subject" class="text" /> <input type="image" name="imageField" id="imageField" src="imgs/send.gif" class="send" />
PHP<?php
include('inc/system.php');
$email = $_POST['email'];
//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email )){ $error.="Wpisano błędny adres email";
$errors=1;
}
if($errors==1
) echo $error; else{
$values = array ('name','email','message'); $required = array('name','email','message');
$your_email = $_POST['getemail'];
$email_subject = "New Message: ".$_POST['subject'];
$email_content = '<div style="width: 60%; padding: 8px; margin-bottom: 2px; background: #252525; border: solid 1px #e4e4e4; font-size: 13px; color: #e8e8e8;"><b>Ta wiadomość została wysłana z formularza na stronie <a style="color: #a0a0a0; text-decoration: none;" href="http://www.xxx.com">www.xxx.com</a></b></div>';
$header="From:$email\n";
$header.="Content-Type: text/html; charset=utf-8\n";
foreach($values as $key => $value){
if ($key != 'subject' && $key != 'company') {
if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; } }
$email_content .= '<div style="width: 60%; padding: 8px; margin-bottom: 2px; background: #f6f6f6; border: solid 1px #e4e4e4; font-size: 13px; color: #505050;">'.getforminput($_POST[$value]).'</div>';
}
}
if(@mail($your_email,$email_subject,$email_content,$header)) { } else {
}
}
?>
Wydaje się, że wszystko powinno działać. Niestety w przypadku użycia $_POST mail nie dociera na skrzynkę pocztową. Jak rozumiem z pola select nie pobiera wybranej opcji i wysyłany mail nie posiada adresata. Dlaczego ?
Ten post edytował wbeatn 31.03.2012, 00:03:06