Přeskočit na obsah

PHP prakticky/Čtení z mailové schránky

Z Wikiknih

Jestliže chceme vypsat obsah emailové schránky pomocí PHP, stačí nám k tomu jen přihlašovací údaje ke schránce, které mimo jiné zadáváme i při nastavování MS Outlooku a pod.

K emailové schránce se připojuje podobně jako k databázi. Tedy:

  • Nejprve musíme připojit pomocí funkce IMAP_Open("{server/metoda}INBOX","uživatel","heslo") (Metodou je obvykle POP3 nebo IMAP. Pro internetové prohlížení to je jedno, ale jinak metoda POP3 stáhne emaily do počítače, ale s IMAP je ponecháváme na serveru.)
  • Počet zpráv ve schránce zjistíme funkcí IMAP_Num_Msg(Spojení)
  • Spojení zavřeme funkcí IMAP_Close(Spojení)

Další funkce bude lepší popsat přímo na příkladu. Následující příklad ukazuje výpis zpráv z emailové schránky s kompletním výpisem zpráv.

Pozor: Nepoužívejte tento skript pro schránky obsahující velké množství dat! Zpracování stránky trvá velmi dlouhou dobu! Tento skript špatně interpretuje přílohy, proto, jestliže schránka obsahuje větší množství příloh, nebude výpis čitelný, a bude se dlouho zpracovávat!

<html>

<head>

<title>Čtení emailu ze schránky pomocí POP3</title>

</head>

<body>
<?php

// navázání spojení se serverem (v příkladu Seznam.cz)
$spojeni = @IMAP_Open( "{pop3.seznam.cz/pop3}INBOX", "uzivatel", "heslo" );

echo "Počet zpráv ve schránce:" . IMAP_Num_Msg( $spojeni );

$hlavicky = IMAP_Headers( $spojeni );

for( $i = 0; $i < count( $hlavicky ); ):
	echo "<br />" . ++$i . ". zpráva: ";
	echo $hlavicky[$i-1];
	echo "<br />" . IMAP_Body( $spojeni, $i ); // U velkých schránek s velkými přílohami doporučuji vynechat!
endfor;

IMAP_Close( $spojeni );

?>
</body>

</html>

Bohužel aby se zprávy správně zobrazovaly, musí se obsah zprávy více zpracovat. Mohl bych uvést také všechny způsoby jak, ale po prohlédnutí příkladu, myslím, by měli pokročilí by měli vědět co a jak.


Jestliže čtete tento článek, pravděpodobně by vás také zajímalo, jak můžete vytvořit váš vlastní emailový server. (Potřebovat k tomu budete počítač, který použijete jako server s operačním systémem Linux) Návod je zde.