2014-12-13 3 views
-2

Я создаю контакт.php. Мой план состоит в том, чтобы включить в материал e-maail, который пользователь ввел ранее. (переменные) В этом случае укажите адрес отправителя, тему и сообщение. Я не хочу использовать PEAR. Я хочу использовать мой SSMTP, который установлен на моем малине Pi на Debian.PHP MAIL функция с переменными >>> КАК?

Код для формы + ввода и текстовое поле:

<form method="POST" action="contact.php?page=log"> 
<input type="text" name="from_email" placeholder="Your E-Mail"/> 
<input type="text" name="subject_email" placeholder="Subject"/> 
<textarea rows="5" cols="50" name="message_email" style="width: 100%" placeholder="Message"></textarea> 
<input type="submit" name="submite_email" value="Send E-Mail" /> 
</form> 

Код для PHP Email:

<?php 
if(isset($_POST['from_email']) and isset($_POST['subject_email']) and isset($_POST['message_email'])){ 
$to  = '[email protected]'; 
$subject = $_GET['subject_email']; 
$message = $_GET['message_email']; 
$headers = 'From: '$_GET['from_email'] . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 
mail($to, $subject, $message, $headers); 
} ?> 

SSMTP и php.ini установлены. Если я использую форму по умолчанию для этого, он отправляет мне электронное письмо.

<?php 
$to  = '[email protected]'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 
?> 
+0

Это не то, как работает этот сайт, вам нужно нажать галочку рядом с ответом, который отвечает на ваш вопрос, а не создавать новый «ответ». – cybermonkey

ответ

1

Вы ча использовать PHPMailer класс https://github.com/PHPMailer/PHPMailer/blob/master/class.phpmailer.php

require_once('../class.phpmailer.php'); 

    //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded 

    $mail    = new PHPMailer(); 

    $body    = file_get_contents('contents.html'); 
    $body    = eregi_replace("[\]",'',$body); 

    $mail->IsSMTP(); // telling the class to use SMTP 
    $mail->Host  = "mail.yourdomain.com"; // SMTP server 
    $mail->SMTPDebug = 2;      // enables SMTP debug information (for testing) 
               // 1 = errors and messages 
               // 2 = messages only 
    $mail->SMTPAuth = true;     // enable SMTP authentication 
    $mail->Host  = "mail.yourdomain.com"; // sets the SMTP server 
    $mail->Port  = 26;     // set the SMTP port for the GMAIL server 
    $mail->Username = "[email protected]"; // SMTP account username 
    $mail->Password = "yourpassword";  // SMTP account password 

    $mail->SetFrom('[email protected]', 'First Last'); 

    $mail->AddReplyTo("[email protected]","First Last"); 

    $mail->Subject = "PHPMailer Test Subject via smtp, basic with authentication"; 

    $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test 

    $mail->MsgHTML($body); 

    $address = "[email protected]"; 
    $mail->AddAddress($address, "John Doe"); 

    $mail->AddAttachment("images/phpmailer.gif");  // attachment 
    $mail->AddAttachment("images/phpmailer_mini.gif"); // attachment 

    if(!$mail->Send()) { 
     echo "Mailer Error: " . $mail->ErrorInfo; 
    } else { 
     echo "Message sent!"; 
    } 
+0

Спасибо, но я хотел использовать мой ssmtp, который уже установлен на моей малине Pi. Все, что мне нужно, это знать, как включать материал из $ _POST в те, где он использует ''. Я попробую это позже. Еще раз спасибо: – Bird

+0

$ subject = $ _GET ['subject_email']; изменить на $ subject = $ _POST ['subject_email']; –

+0

вы используете $ _GET, а не $ _POST $ _GET пусто в POST-запросе –

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