2014-10-23 3 views
0

이메일을 보낼 파일을 만들었지 만 테스트 이메일을 보낼 때마다 이메일의 도메인 이름을 boscustweb3203.eigbox.net으로 받고 있습니다.php에서 보낸 이메일이 boscustweb3203.eigbox.net으로 전송됩니다.

내가 사용한 코드는 다음과 같습니다 내 서버의

<!DOCTYPE HTML> 
<html> 
<head> 

<style> 
.error{ 
color:red; 
} 
</style> 
</head> 
<body> 

<?php 
// define variables and set to empty values 
$nameerr = $emailerr = $gendererr = $commenterr = $websiteerr = ""; 
$name = $email = $gender = $comment = $website = ""; 

if ($_SERVER["REQUEST_METHOD"] == "POST") { 
     if (empty($_POST["name"])){ 
     $namerrr = "Name is required"; 
     } else { 
     $name = test_input($_POST["name"]); 
     if (!preg_match("/^[a-zA-Z ]*$/",$name)) { 
     $nameErr = "Only letters and white space allowed"; 
     }} 
     if (empty($_POST["email"])){ 
     $emailerr = "Email is required"; 
     } else { 
     $email = test_input($_POST["email"]); 
     if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
     $emailErr = "Invalid email format"; 
     }} 

     if (empty($_POST["website"])){ 
     $websiteerr = "Website name is required"; 
     } else { 
     $website = test_input($_POST["website"]); 
      // check if URL address syntax is valid (this regular expression also allows dashes in the URL) 
    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) 
     $websiteErr = "Invalid URL"; 
     } 

     if (empty($_POST["comment"])){ 
     $commenterr = "Comment is required"; 
     } else { 
     $comment = test_input($_POST["comment"]); 
     } 

     if (empty($_POST["gender"])){ 
     $gendererr = "Gender is required"; 
     } else { 
     $gender = test_input($_POST["gender"]); 
     } 
} 

function test_input($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 
?> 

<h2>PHP Form Validation Example</h2> 
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
    Name: <input type="text" name="name"> 
    <span class="error"><?php echo $nameerr;?></span> 
    <br><br> 
    E-mail: <input type="text" name="email"> 
    <span class="error"><?php echo $emailerr;?></span> 
    <br><br> 
    Website: <input type="text" name="website"> 
    <span class = "error"><?php echo $websiteerr;?></span> 
    <br><br> 
    Comment: <textarea name="comment" rows="5" cols="40"></textarea> 
    <span class = "error"><?php echo $commenterr;?></span> 
    <br><br> 
    Gender: 
    <input type="radio" name="gender" value="female">Female 
    <input type="radio" name="gender" value="male">Male 
    <span class="error"><?php echo $gendererr;?></span> 
    <br><br> 
    <input type="submit" name="submit" value="Submit"> 
</form> 

<?php 
echo "<h2>Your Input:</h2>"; 
echo $name; 
echo "<br>"; 
echo $email; 
echo "<br>"; 
echo $website; 
echo "<br>"; 
echo $comment; 
echo "<br>"; 
echo $gender; 
?> 


<?php 
$to = "[email protected]"; 
$headers = "From: $name \r\n"; 
mail($to,$website, $comment, $headers); 
?> 


</body> 
</html> 

호스트는 ipage.com입니다. 이런 종류의 버그 또는 서버 문제가 있으면 알려주십시오.

이메일은 [email protected]입니다. 나는 다른 이메일 주소를 주었다. @ 이전의 첫 번째 부분은 맞습니다.

+1

당신이 이름 대신 "보낸 사람"과 같은 이메일 주소를 사용하고있는 것으로 보인다. – hellcode

+0

고마워요. –

답변

3

만의 이름을 설정하는 때문입니다 헤더부터 :

$headers = "From: $name \r\n"; 

PHP가 자동으로 전자 메일 URL을 추가합니다. From : 헤더에 항상 정규화 된 전자 메일 주소를 지정해야합니다.

은 설명서를 참조하십시오 :

+2

답변을 게시 할 예정 이었지만, 이미 "대답"했기 때문에 여기에 의견을 추가 할 것입니다. - $ headers = "From :". $ name. "<". $ 이메일. "> \ r \ n";' –

관련 문제