Webhosting - odesílání emailů z webu

Výchozí zakázání funkce php mail():

Z důvodů bezpečnosti je ve výchozím nastavení v rámci všech hostingových balíčků zakázána funkce php mail().
Hlavním důvodem je především časté zneužívání bezpečnostních chyb v hojně používaných CMS (Joomla!, WordPress, Drupal a další).


Jak mohu na svém virtuálním serveru odesílat emaily?

1. Použití našeho SMTP - tuto možnost doporučujeme:
Součástí každého webhostingového balíčku je možnost vytvářet vlastní emailové schránky. Při vytvoření takovéto schránky je pak možné pomocí vytovřeného jména (emailová adresa) a hesla odesílat poštu přes naše SMTP servery.
Tuto funkci umí použít všechny oblíbené Open source aplikace (Wordpress, Joomla, Prestashop, Drupal a další).
Pro použití většinou stačí nastavit tuto volbu při konfiguraci webu, nebo později upravit v administraci webu. Budete potřebovat znát:

- Adresu SMTP serveru: mail.zikum.cz
- Přihlašovací jméno: mojeschranka@mojedomena.cz
- Heslo k Vaší schránce: xxxyyyyzzzz
- SMTP porty: 25 (nezabezpečený) nebo 465 (zabezpečený) 


2. Použití funkce php mail():
Funkce mail() je na serverech standardně povolena a většina Opensource aplikací ji umí standardně použít.

Pro zvýšení zabezpečení webu můžete chtít funkci mail() zákázat/povolit:

1. Přihlaste se přes FTP k Vašemu virtuálnímu serveru > otevřete soubor: etc/php{$VERSION}/php/php.ini  > zde do řádku obsahující "disable_functions" přidejte hned na začátek "mail," a změny uložte.
2. Vstupte do administrace na adrese: https://admin.zikum.cz a dle typu Vašeho hostingu (freehosting/placený hosting) zvolte přihlášení do správného Control Panelu.
3. V levém menu klikněte na "Services" > "PHP{$VERSION} configuration" >  Upravit konfiguraci ručně. zde do řádku obsahující "disable_functions" přidejte hned na začátek "mail," a změny uložte.

Za {$VERSION} dosaďte vždy Vámi používanou verzi PHP. Výchozí verze PHP je aktuálně 7.2.


Používáte vlastní skripty a aplikace?

Nabízí se několik možností:

1. můžete použít již zmiňovanou funkci php mail()  
2. Námi doporučované řešení je použití třídy Pear Mail https://pear.php.net/package/Mail 

Pomocí tohoto Pear balíčku lze odesílat emaily těmito způsoby: mail(), sendmail, SMTP. Doporučujeme používat metodu SMTP.

Níže uvádíme příklad skriptu pro odesílání emailů pomocí Pear Mail a externího SMTP s aktivním SSL.

<?php
require_once "Mail.php";
 
$from = "Web Master <webmaster@freezikum.cz>";
$to = "Test <test@test.cz>";
$subject = "Testovaci zprava\r\n\r\n";
$body = "Toto je testovací zpráva odeslaná pomocí SMTP s aktivním SSL";
 
$host = "ssl://smtp.poskytovatel.cz";
$port = "465";
$username = "pepanovak@poskytovatel.cz";
$password = "tajneheslo";
 
$headers = array ('From' => $from,
  'To' => $to,
  'Subject' => $subject);
$smtp = Mail::factory('smtp',
  array ('host' => $host,
    'port' => $port,
    'auth' => true,
    'username' => $username,
    'password' => $password));
 
$mail = $smtp->send($to, $headers, $body);
 
if (PEAR::isError($mail)) {
  echo("<p>" . $mail->getMessage() . "</p>");
} else {
  echo("<p>Zprava odeslana!</p>");
}
?>
  • 2 Uživatelům pomohlo
Byla tato odpověď užitečná?

Související články

PHP akcelerátory - nastavení

Na našem hostingu lze využít dvě metody pro urychlení běhu webu a...

Popis výchozích adresářů a souborů

Po vytvoření hostingu je ve Vašem domovském adresáři automaticky...