2015-05-04 4 views
-1

У меня есть блок кода, который принимает форму, отправляет его на ту же страницу с благодарственным сообщением, а затем отправляет его по электронной почте в мою учетную запись.Форматирование PHP для сообщений и сообщений электронной почты

Как прямо сейчас, он показывает, как это в конце электронной почты:

hello world., Name: Hello World, , Email: [email protected] 

Что означает, что он идет сообщение, имя, а затем по электронной почте.

Как я могу сделать это так, он отображает похож на что-то подобное в письме ..

Name: Hello World 
Email: [email protected] 

Message: hello world... 

Вот код, я использую:

<?php 
    if (isset($_REQUEST['email'])) 
    //if "email" is filled out, send email 
     { 
      //send email 
      $name = $_REQUEST['name'] ; 
      $email = $_REQUEST['email'] ; 
      $subject = $_REQUEST["My Portfolio Website"] ; 
      $message = $_REQUEST['message'].", Name: ".$name.", Email: ".$email; 
      mail("[email protected]", $subject, $message, "From:" . $email); 
      echo "<h1>Thank you for contacting me. I will get back to you ASAP!</h1>"; 
     }else{ 
     //if "email" is not filled out, display the form 
      echo "<form method='post' action='index.php'> 

       <input type='text' input name='name' id='name' class='contacttext' placeholder='Your Name' required> 
       <input type='text' input name='email' id='email' class='contacttext' placeholder='Your Email Address' required> 
       <textarea name='message' id='message' class='contacttext' placeholder='Your Message' cols='55' rows='5' required></textarea> 

       <input type='submit' id='submit' class='submitcontacttext' value='Send'> 
       </form>"; 
     } 
?> 

Кроме того, в настоящее время является предмет не ставить себя, какова будет причина этого?

+0

HTML входы с пробелами преобразуются в символы подчеркивания '_' в PHP, так что вам нужно' $ _REQUEST [ "My_Portfolio_Website"] '. Чтобы форматировать, используйте linebreaks '\ n' /' \ r \ n' – Sean

+0

вы что-то пробовали? не похоже на это. –

ответ

0

Попробуйте следующее:

// I don't see 'My Portfolio Website' this being passed into your form 
// did you mean to do? $subject = 'My Portfolio Website'; 
$subject = $_REQUEST["My Portfolio Website"]; 
// add \n to add line breaks. 
// $message = $_REQUEST['message'] . "\nName: " . $name . "\nEmail: ".$email; 

/** 
* this will make it easier to re-order the elements or add new ones. 
*/ 
$message = implode("\n", [ 
    'Name: ' . $name, 
    'Email: ' . $email, 
    'Message ' . $_REQUEST['message'], 
]); 
+0

Я бы просто добавил '' \ nMessage: ". $ Message' в конце этого, чтобы его форматировать, чтобы он отправлял имя/адрес электронной почты, а затем сообщения, как в моем примере? На данный момент вызов '$ message = $ _REQUEST ['message']' делает его таким образом, чтобы сообщение было первым, что отображается в письме. –

+0

да, вы можете это сделать. – Augwa

+0

Будет ли дублировать функцию сообщения? '$ message = $ _REQUEST ['message']. "\ nName:". $ name. "\ nEmail:". $ email; "\ n \ nMessage:". $ message; ' –

Смежные вопросы