2013-11-08 3 views
-1

это мой кодВставить текст в теле письма PHP

class Email { 
    public $name; 
    public $email; 
    public $subject; 
    public $textarea; 
    public $to = "[email protected]"; 
    public $header; 

    function __construct($name, $email, $subject, $textarea) { 
     $this->name = $name; 
     $this->email = $email; 
     $this->subject = $subject; 
     $this->textarea = $textarea; 
     $this->header = "From:$this->email \r\n"; 
     $this->header .= "Имя: $this->name \r\n"; 
     $this->sendEmail(); 
    } 

    public function sendEmail(){ 
     if(mail ($this->to,$this->subject,$this->textarea,$this->header)) { 
      echo "Отправлено"; 
     } 
     else { 
      echo "Ошибка"; 
     } 
    } 
} 
$obj = new Email($_POST['name'], $_POST['email'], $_POST['subject'], $_POST['textarea']); 

Я хочу, чтобы клиент Имя: John Doe в начале каждой почты. Как я могу это сделать через заголовки?

Thanks

+1

Как и в случае с сайтом, я бы избавил 'sendEmail()' от конструктора - ответственность конструктора состоит в том, чтобы построить объект. Побочные эффекты, такие как отправка электронной почты, там не принадлежат и будут неожиданными для людей, которые используют этот класс. – xbonez

+0

, когда вы имеете в виду начало, где внутри сообщения (textarea)? Если это так, вы можете не допустить его до его назначения? –

+0

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

ответ

0

Вам нужно сделать это через заголовки?

Почему бы не создать новый вар

для HTML почты

$this->message=$name."<br><br>".$textarea;

или для обычного текста

$this->message=$name."\n\n".$textarea;

, а затем измените sendEmail() на

if(mail ($this->to,$this->subject,$this->message,$this->header)) {

Возможно, мне не хватает чего-то, чего вы пытаетесь достичь, сообщите мне, если im отсюда.

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