Как я могу вытащить содержимое из электронной почты и записать их в таблицу MySQL? - PullRequest
0 голосов
/ 17 ноября 2011

Как я могу сделать так, чтобы, когда пользователь отправляет электронное письмо на мой адрес электронной почты, его текст / информация по электронной почте записывается в таблицу mysql?Поэтому, в основном, извлеките содержимое нового электронного письма и запишите его в таблицу mysql.

Я пробовал это, но ничего не получил:

<?php 
$imap = imap_open("{gmail.com}", "username", "password"); 

if( $imap ) { 

     //Check no.of.msgs 
     $num = imap_num_msg($imap) 

     //if there is a message in your inbox 
     if( $num >0 ) { 
          //read that mail recently arrived 
          echo imap_qprint(imap_body($imap, $num)); 
     } 

     //close the stream 
     imap_close($imap); 
} 
?>

Мы используем сервер обмена .. Я являюсьCoop студент, так что я не очень продвинут в этом.

Я попробовал это как тест, чтобы увидеть, работает ли он, войдя в Gmail, чтобы прочитать электронную почту.Это не сработало.

<?php

// connect to the mailbox
$m_mail = imap_open("{mail.https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1&ltmpl=default&ltmplcache=2}INBOX", "username", "password");

//get all messages
$m_search=imap_search ($m_mail, 'ALL ');


// Order results starting from newest message
rsort($m_search);

//loop through and do what's necessary 
foreach ($m_search as $onem) {

    //get imap header info for obj thang
    $headers = imap_headerinfo($m_mail, $onem);
    $head = imap_fetchheader($m_mail, $headers->Msgno);
    $body = imap_body($m_mail, $headers->Msgno, FT_INTERNAL );

  echo $body;

}

//purge messages (if necessary)
imap_expunge($m_mail);

//close mailbox 
imap_close($m_mail);

?>

Ответы [ 3 ]

1 голос
/ 17 ноября 2011

используйте для этого функции IMAP.Настройте другую учетную запись электронной почты, если это необходимо.Вот пример кода:

// connect to the mailbox
$m_mail = imap_open("{mail.YOURHOST.com:993/imap/ssl/novalidate-cert}INBOX", "address@YOURHOST.com", "YOURPASSWORD");

//get all messages
$m_search=imap_search ($m_mail, 'ALL ');


// Order results starting from newest message
rsort($m_search);

//loop through and do what's necessary 
foreach ($m_search as $onem) {

    //get imap header info for obj thang
    $headers = imap_headerinfo($m_mail, $onem);
    $head = imap_fetchheader($m_mail, $headers->Msgno);
    $body = imap_body($m_mail, $headers->Msgno, FT_INTERNAL );

    //
   DO WHAT YOU NEED TO DO HERE - insert to the database, etc

}

//purge messages (if necessary)
imap_expunge($m_mail);

//close mailbox 
imap_close($m_mail);
0 голосов
/ 17 ноября 2011

вы можете читать pop3 / imap через определенные промежутки времени.
другим способом было бы перенаправить вашу электронную почту в скрипт php.Я не знаю, какую почтовую систему вы используете на своем сервере, но вот пример с постфиксом .

метод pop3 / imap проще, и вам не нужно редактировать настройки сервера, но второй метод быстрее, потому что ваш скрипт запускается при получении электронной почты.

0 голосов
/ 17 ноября 2011

читать ваш почтовый ящик через pop3 или imap и добавлять новые электронные письма в вашу базу данных

Взгляните на этот класс: http://php.net/manual/en/book.imap.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...