2013-12-02 5 views
2

Мне было интересно, можно ли отправить электронное письмо в БД? Если, например, у вас есть конкурс, и когда люди угадывают ваш вопрос или его часть, их ввод в форме отправки должен быть сохранен в БД в файле, который легко открыть, для последующего использования. Это возможно?Отправить письмо DB

+0

Не прямо, нет - вам придется иметь программу, ожидающую E-Mail, ее обработку и вставку в базу данных. –

+0

Согласен с @Pekka 웃. но вы можете получить почтовый класс https://github.com/PHPMailer/PHPMailer и 'if (mail отправлено)' вставить содержимое этого в таблицу базы данных. – jycr753

+0

Aw okay. Плохо. Тогда я просто настрою учетную запись электронной почты только для целей конкурса. –

ответ

0

Используя пример из php mail class()

вы можете иметь класс дублями все данные почт как это:

<?php 
class mailProcessor { 

    public function _construct(){ 
     $to = ""; 
     $subject = ""; 
     $message = ""; 
    } 

    public function processEmail($to, $subject, $message){ 
     //so validation here for the strings being inputed 
     // 
     if($to){ 
      $this->to = $to; 

     } 

     //and so on 

    } 

    //if evertying is okay require the the mail class 
    require 'PHPMailerAutoload.php'; 

    $mail = new PHPMailer; 

    $mail->isSMTP();          // Set mailer to use SMTP 
    $mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup server 
    $mail->SMTPAuth = true;        // Enable SMTP authentication 
    $mail->Username = 'jswan';       // SMTP username 
    $mail->Password = 'secret';       // SMTP password 
    $mail->SMTPSecure = 'tls';       // Enable encryption, 'ssl' also accepted 

    $mail->From = '[email protected]'; 
    $mail->FromName = 'Mailer'; 
    $mail->addAddress('[email protected]', 'Josh Adams'); // Add a recipient 
    $mail->addAddress('[email protected]');    // Name is optional 
    $mail->addReplyTo('[email protected]', 'Information'); 
    $mail->addCC('[email protected]'); 
    $mail->addBCC('[email protected]'); 

    $mail->WordWrap = 50;         // Set word wrap to 50 characters 
    $mail->addAttachment('/var/tmp/file.tar.gz');   // Add attachments 
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name 
    $mail->isHTML(true);         // Set email format to HTML 

    $mail->Subject = 'Here is the subject'; 
    $mail->Body = 'This is the HTML message body <b>in bold!</b>'; 
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

    if(!$mail->send()) { 

     if($this->updateDatabase()) 
     echo 'Message could not be sent.'; 
     echo 'Mailer Error: ' . $mail->ErrorInfo; 
     exit; 
    } 

    public function updateDatabase(){ 
     //get all local variables from the cosntructor 
     // 
     //update the databse with the new data 
     // 
     return true 

     //else should return false.. 
    } 
} 


?> 

так изменяет это будет необходимо, но идея будет сделать достаточно, чтобы сделать эту работу:)

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