Обучение в PHP – част 11 (Изпращане и получаване на мейл)
Командата mail()
За да изпратите просто текстово съобщение в електроната поща, трябва да използвате вградената команда mail(). За доставката на съобщенията, тази команда разчита на локалната система за електрона поща. Синтаксисът на функцията е:
boll mail(string to, string subject, string message[,string additional_headers]);
Функцията връща стойност true, ако съобщението е изпратено правилно до локалната система за електронна поща. Това обаче, не означава, че самото съобщение е доставено до получателя. Четвъртия параметър не е засължителен:
Ето и обяснение на параметрите:
-------------------------------------------------------------
Параметър | Значение | Пример |
-------------------------------------------------------------|
To Адрес на получателя, user@mail.com или |
ако е повече от един user@mail.com, |
трябва да се отделят user2@mail.com |
със запетая |
|
Subject Тема на съобщението "user registration" |
|
Message Тяло на съобщението "Hi, \n this is my |
message ! " |
|
additional_ Този низ се добавя "From: |
headers (не- в края на заглавието webmaster@mail.com |
задължите- на съобщението. Ако \r\n Realy-to: |
лен) заглавието заема ня my@mail.com |
колко реда, може да |
ги разделите с "\r |
\n" |
|
-------------------------------------------------------------|Следващият пример изпраща e-mail до един единствен получател:
<?php
mail ("alabala@mail.com", "Това е темата", "Тялото на съобщението");
?>Третия параметър съдържа тялото на съобщението. Ако искате да вградите е-маил текст в PHP код, текстът може да се запише на няколко реда:
<?php
mail ("alabala@mail.com", "Това е темата", "Тялото на съобщението", "
Hello, welcome to our server. To access our site, you need the following data:
username: $username
password: $password
If you should have problems with our service, plese contact
");
?>Ако искате да изпратите дадено съобщение до няколко получателя, трябва да разделите адресите им със запетайки.
<?php
mail ("mail1@mail.com, mail2@mail.com, mail3@mail.com", "Темата темата", "Тялото на съобщението");
?>Със функцията implode(), можете да създадете масив със списък на получателите.
<?php
$recipients = array("user1@mail.com", "user2@mail.com");
$recipient_list = implode(",",$recipients);
?>Получаване на електрона поща
Портоколът IMAP (Internet Message Access Protocol) вече навлезе в комерсиалния пазар, след като беше използван години напред като програмно средство, поддържано от самите потребители. IMAP прави няколко основни подобрения на POP, като основното е надеждната доставка на електроната поща, независимо от връзката и условиата за таймаут. За разлика от единствената мисия на POP -да изпрати всички съобщения на изпращащия заявките клиент с удостоверена самоличност – IMAP предава управлението на електроната поща, включително съхранението и извличането на сървъра.
Стандара за IMAP портокола се поддържа добре от PHP и при комбинирането им използване, се получават доста подходящи, надежни и лесни за използване програмни среди за създаване на средства за работа с електрона поща. Като комбинирате PHP и IMAP функциите, можете да получите за кратко време мощни и разнообразни резултати. НЯкой от тях са разгледани по-долу:
imap_open
PHP функцията imap_open() отваря IMAP поток към пощенската кутия.
int imap_open(string пощенска_кутия, string потребител, string парола, int флагове);
В горния код връща при успех IMAP поток или false при грешка. Ако искате да се свържете към IMAP сървър на порт 143 на локалната машина, разгледайте следващия код.
$mbox = imap_open(„{localhost:143)INBOX“,“user_id“,“password“);
За да се свържете към POP3 сървър на 110 порт на локалната машина, използвайте:
$mbox = imap_open(„{localhost/pop3:110)INBOX“,“user_id“,“password“);
За да се свържете с отдалечен сървър, просто заменяте localhost с името или IP адреса на сървъра. В резултат на imap_open се получава IMAP поток от данни, който може да бъде използван от други IMAP PHP функции.


