GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nechat PHP posílat poštu?

Nainstaloval jsem Ubuntu 11.04, LAMP pomocí taskel.

Zjistil jsem, že PHP mail() nefunguje.

Asi to musím povolit nebo co? Jak to udělám?

Nejlepší odpověď

Z poštovní příručky php:

Požadavky

Aby byly funkce pošty
dostupné, vyžaduje PHP nainstalovaný
a funkční e-mailový systém. Program
, který se má použít, je definován
konfiguračním nastavením v souboru php.ini
.

To znamená, že musíte nainstalovat nějaký poštovní server a nakonfigurovat php, aby jej používal. Obvykle je tento poštovní server postfix v Ubuntu. Nicméně – pokud bude php strana, kterou kódujete, nakonec uložena na straně hostingové služby (např. xmission), bude zde s největší pravděpodobností již nainstalován poštovní server. V takovém případě otestujte své stránky online namísto lokálně.

Pokud jej potřebujete otestovat na svém vlastním systému nebo hodláte hostovat na svém vlastním domácím serveru, pokračujte:

Instalace Postfixu

Instalace:postfix / sudo apt-get install postfix Během procesu budete dotázáni, v jakém režimu chcete nainstalovat postfix. Existují čtyři možné režimy:

  • Internet :Váš vlastní poštovní server.
  • Satelitní :Pro odesílání a přijímání pošty bude použit externí poskytovatel pošty (např. Google). Server nebude přijímat žádnou poštu.
  • Smarthost :Směs mezi těmito dvěma. Pošta je uložena lokálně, ale odesílá se prostřednictvím externího poskytovatele pošty.
  • Pouze místní :Nebude se vás týkat. To je systémový interní poštovní server. V systému můžete odesílat poštu pouze od uživatele k uživateli.

Zbývající možnosti instalace závisí na vaší volbě této obecné konfigurace.

S největší pravděpodobností zvolíte satelitní instalaci. To znamená, že pošta bude odeslána pomocí externího poskytovatele. Jako smtp-server (server odchozí pošty) pak budete muset zadat své poskytovatele smtp. Zbývající možnosti jsou samozřejmé.

Konfigurace po instalaci

Většina smtp serverů vyžaduje pro odesílání pošty ověření heslem. Postfix tedy bude muset znát toto heslo. Také je třeba zvážit věci, jako je šifrování (které budete muset vygooglovat). Takto konfigurujete postfix pomocí ověřování heslem (sasl):

  • Nainstalujte moduly libsasl2 a sasl2-bin kliknutím na ikony Centra softwaru nebo z terminálu pomocí:

    sudo apt-get install libsasl2-2 libsasl2-modules sasl2-bin
    
  • Povolte sasl-auth přidáním těchto řádků do /etc/postfix/main.cf

     # add to /etc/postfix/main.cf
     smtp_sasl_auth_enable = yes
     smtp_sasl_security_options = noplaintext noanonymous
     smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
    
  • Vytvořte soubor /etc/postfix/sasl_password s řádkem jako:

     smtp.gmail.com [email protected]:USERPASSWORD
    

    Nahraďte skutečné heslo, uživatelské jméno a smtp-adresu.

  • Aktualizovat postfix:

     sudo chmod 600 /etc/postfix/sasl_password # for safety of your smtp password
     sudo postmap hash:/etc/postfix/sasl_password 
     sudo postmap /etc/postfix/sender_canonical
     sudo /etc/init.d/postfix restart   
    

    Možná budete muset obejít chybu „povolení odepřeno“ pomocí chown postfix:postfix /etc/postfix předem.

Související:Nemohu nainstalovat plán gnome na Ubuntu 16.04?

To by mělo fungovat ve většině případů. Přesto někteří poskytovatelé smtp vyžadují specifickou adresu jako odesílatele nebo šifrování.

Související:PEAR::Mailové rozhraní by vás také mohlo zajímat.

Gmailu (a možná i dalším službám) se nemusí líbit, že se pokoušíte odeslat poštu tímto způsobem, protože by to mohlo být podle jejich standardů považováno za nezabezpečené a váš pokus by zablokovalo, tj. vaše ověření. Také váš POP3 musí být povolen.

Chcete-li tomu zabránit, viz zde. (Pokud chcete být na bezpečné straně, vytvořte si falešný účet Gmail)


Ubuntu
  1. Jak nainstalovat a nakonfigurovat Postfix

  2. Ubuntu – Jak nechat Pam_exec spustit skript jako aktuální uživatel?

  3. Jak spočítám zprávy mailq Postfixu?

  1. Jak nainstalovat a nakonfigurovat Postfix na Ubuntu 20.04

  2. Jak odstranit applet indikátoru ikony pošty?

  3. Jak odeslat zprávu Xmpp pomocí příkazového řádku?

  1. Jak nainstalovat poštovní server Postfix na RHEL 8 / CentOS 8

  2. Jak nastavit poštovní server Postfix na Ubuntu 16.04 (Dovecot - MySQL)

  3. Jak mohu odeslat e-mail z příkazového řádku?