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">
<ol>
<li>
<label>Adresat</label>
<select name="getemail" class="text"><option value="" selected="selected">Dyr. stategiczny</option><option value="">Dyr. handlowy</option></select></td>
</li>
<li>
<label for="name">Przedstaw się</label>
<input id="name" name="name" class="text" />
</li>
<li>
<label for="email">Twój email</label>
<input id="email" name="email" class="text" />
</li>
<li>
<label for="subject">Temat</label>
<input id="subject" name="subject" class="text" />
</li>
<li>
<label for="message">Wiadomość</label>
<textarea id="message" name="message" rows="6" cols="50"></textarea>
</li>
<li class="buttons">
<input type="image" name="imageField" id="imageField" src="imgs/send.gif" class="send" />
<div class="clr"></div>
</li>
</ol>
</form>
PHP
<?php
include('inc/system.php');
if(!$_POST) exit;
$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">http://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(in_array($value,$required)){
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)) {
echo 'Message sent!';
} else {
echo 'ERROR!';
}
}
?>
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 ? |