Как да изпратите имейл от PHP скрипт чрез SMTP удостоверяване

Съдържание:

Как да изпратите имейл от PHP скрипт чрез SMTP удостоверяване
Как да изпратите имейл от PHP скрипт чрез SMTP удостоверяване
Anonim

Какво да знаете

  • Опции за PHP клас: PHPmailer, SwiftMailer, Zend_Mail, XpertMailer, PEAR Mail.
  • PEAR Mail: Забележете името на пощенския сървър > проверете дали PEAR Mail е инсталиран > модифицирайте PHP файла, като използвате дадените примери.

Тази статия обяснява как да използвате SMTP удостоверяване за изпращане на имейл с функцията PHP mail() в PEAR Mail.

Изпращане на имейл с функцията PHP Mail

Когато използвате функцията PHP mail(), в крайна сметка изпращате имейл директно от вашия уеб сървър, а не от вашия имейл сървър. Ако имате пощенски сървър чрез вашия уеб хост или дори пощенски сървър с различен хост, обикновено е по-добре да изпращате поща през него.

Проблемът е, че функцията PHP mail() не предоставя никакъв вграден начин за изпращане на поща през SMTP. Ако искате да отворите тази функционалност, ще трябва да инсталирате допълнителен PHP клас.

Ето някои опции, които работят:

  • PHPmailer
  • SwiftMailer
  • Zend_Mail
  • XpertMailer
  • PEAR Mail

Ще ви покажем как да използвате PEAR Mail, но можете да използвате всеки клас, който поддържа SMTP.

Image
Image

Ако вашият уеб хост вече има инсталиран един или повече от тези класове, той вероятно има уроци, отнасящи се до вашата ситуация. Ако е така, продължете и използвайте класа, до който имате достъп.

Използвайте този метод само ако използвате PHP за създаване на ваши собствени персонализирани формуляри за поща. Ако използвате система за управление на съдържанието (CMS) като WordPress, потърсете приставка или вградена функционалност за изпращане на поща през SMTP, вместо да се опитвате да създадете своя собствена.

Как да използвате PEAR за изпращане на поща чрез SMTP

  1. Уверете се, че вашият домейн е насочен към записите за обмен на поща (MX) на хоста на вашия пощенски сървър и отбележете името на вашия пощенски сървър. Например може да е mail.yourdomain.net или smtp.yourdomain.net.
  2. Проверете дали PEAR Mail вече е инсталиран на вашия пощенски сървър.
  3. Ако PEAR Mail не е инсталиран, консултирайте се с хоста си за уеб поща за конкретни инструкции за инсталирането му.
  4. След като PEAR Mail бъде инсталиран, променете един от примерните PHP файлове в следващите раздели, за да отговаря на вашите нужди.

Примерен PHP скрипт на PEAR Mail за SMTP поща

Можете да създадете свой собствен скрипт от нулата, ако желаете, или да промените следния пример по ваш вкус. Уверете се, че сте въвели името на вашия сървър за уеб поща в променливата на хоста и използвайте информацията си за вход за вашия хост за уеб поща в полетата за потребителско име и парола.

require_once "Mail.php";

$from="Име на подател";

$to="Име на получател";

$subject=" Тема Тук: ";

$body=" всяко съобщение, което искате ";

$host="yourmailhost.com";

$username="вашето потребителско име или имейл"; $password="вашата парола";

$headers=масив ('From'=> $from, 'To'=> $to, 'Subject'=> $subject);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'auth'=> true, 'username'=> $username, 'password'=> $password));

$mail=$smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {

echo("

". $mail->getMessage()."

);

} else {echo("

Съобщението е изпратено успешно!

);}

Примерен PHP скрипт на PEAR Mail за SMTP удостоверяване и SSL криптиране

Ако искате да използвате SMTP удостоверяване и SSL криптиране, ще трябва да направите няколко модификации на предишния пример. Ще трябва да насочите хост променливата към вашия SSL сървър за електронна поща и също така да посочите номер на порт като 25, 465, 587, 2525 или 8025. Свържете се с хоста си за уеб поща за повече информация, ако не можете да разберете кой порт да използвай.

require_once "Mail.php";

$from="Име на подател";

$to="Име на получател";

$subject=" Тема Тук: ";

$body=" всяко съобщение, което искате ";

$host="ssl://yourmailhost.com";

$port="587"; $username="вашето потребителско име или имейл";

$password="вашата парола";

$headers=масив ('From'=> $from, ' To'=> $to, 'Subject'=> $subject);

$smtp=Mail::factory('smtp', array ('host'=> $host, 'port'=> $port, 'auth'=> true, 'username'=> $username, 'password'=> $парола));

$mail=$smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {

echo("

". $mail->getMessage()."

);

} else {echo("

Съобщението е изпратено успешно!

);}

Препоръчано: