Posílání mailů v PHP přes SMTP server smtp.gmail.com pomocí Swift Maileru

V tomto článku se budeme zabývat využitím třídy Swift Mailer k posílání mailů pomocí programovacího jazyka PHP přes SMTP server gmailu (smtp.gmail.com). V tomto případě nelze použít vestavěnou funkci mail(), neboť gmail požaduje jak SMTP autentizaci, tak šifrovaný přenos (pomocí TLS).

Co budeme potřebovat?

  • PHP 5 s povoleným rozšířením php_openssl.dll
  • Swift Mailer (instalace popsána dále)
  • účet na gmailu

Instalace Swift Maileru

Z webové stránky Swift Maileru si stáhneme aktuální verzi – v době psaní článku je to 3.3.3 z března 2008. Stáhneme verzi pro PHP 5. K dispozici jsou dva balíčky – jeden zabalený zipem, druhý gzipem. Oba balíčky jsou funkčně rovnocenné, vyberte si podle vlastní chuti (většinou zip pro Windows, gzip pro Unixové systémy). Po rozbalení uvidíme několik souborů a adresářů. Pro zprovoznění nám stačí zkopírovat adresář lib buď do do include_path (do adresáře, který najdeme v souboru php.ini) nebo přímo do adresáře naší aplikace. První způsob nám umožní vkládat Swift Mailer do našich aplikací pomocí require_once "lib/Swift.php";, u druhé metody budeme muset pro každou aplikaci zkopírovat soubor do adresáře aplikace a potom vkládat pomocí require_once "./lib/Swift.php";.

Zbývá jen podotknout, že u většiny hostingů zřejmě nebude možné zkopírovat soubory do include_path, na druhou stranu by měl být webhoster schopen na požádání Swift Mailer nainstalovat.

Jak odeslat e-mail přes gmailí SMTP?

V této části si ukážeme jednoduchý kód pro poslání e-mailu a tento si okomentujeme.

<?php
  require_once "lib/Swift.php";   // require potøebných souborù
  require_once "lib/Swift/Connection/SMTP.php";
  $smtp = new Swift_Connection_SMTP("smtp.gmail.com", // pøipoj se přes smtp.gmail.com
    Swift_Connection_SMTP::PORT_SECURE,   // zabezpečené spojení
    Swift_Connection_SMTP::ENC_TLS);      // pomocí TLS
  $smtp->setUsername("example@gmail.com");  // uživatelské jméno (pro SMTP autorizaci)
  $smtp->setPassword("password");           // heslo
  $swift = new Swift($smtp);              // vytvoøíme objekt Swift Maileru
  $msg = new Swift_Message("Pøedmìt e-mailu",  // vytvoøíme novou zprávu
  "Zdar, toto je testovací e-mail pøes Swiftmailer a gmail SMTP server");
  $msg->setCharset("utf-8");           // nastavíme kódování
 
  // zkusíme odeslat
  if ($swift->send($msg, "e-mail@prijemce.cz", "e-mail@odesilatele.cz")) echo "sent";
  else echo "error";
?>
Příspěvek byl publikován v rubrice PHP. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *