Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - blahapet

Stran: [1]
1
Server / Gmail zahazuje maily? Pokračování tématu...
« kdy: 22. 07. 2022, 16:20:42 »
Ahoj všichni, jelikož jsem četl Vaši diskuzi ohledně nedoručení mailů do schránek GMailu - https://forum.root.cz/index.php?topic=25665.0 a měl jsem tentýž problém, kdy mi knihovna PHP Mailer nedoručila žádnou zprávu do schránek GMailu, byl jsem nucen začít pátrat proč se tak děje.

Vysvětlení je jednoduché. Funkce v PHP mail() je pro tento účel naprosto nepoužitelná. Je potřeba konkrétně v PHP Maileru, aby se pošta odesílala přímo přes SMTP server, níže předkládám svou funkci, která mi funguje:

Kód: [Vybrat]
function OdesliMail($komu, $from, $domena, $predmet, $text, $nazev_prilohy, $priloha){

      require_once "./files/phpmailer/src/Exception.php";
      require_once "./files/phpmailer/src/PHPMailer.php";
      require_once "./files/phpmailer/src/SMTP.php";

      $mail = new \PHPMailer\PHPMailer\PHPMailer(true);


          $mail->IsSMTP();  // k odeslání e-mailu použijeme SMTP server
          $mail->SMTPSecure = "tls";                       
          $mail->Port = 587;
          $mail->Host = "smtp.nejakadomena.cz";  // zadáme adresu SMTP serveru
          $mail->SMTPAuth = true;               // nastavíme true v případě, že server vyžaduje SMTP autentizaci
          $mail->Username = "email";   // uživatelské jméno pro SMTP autentizaci
          $mail->Password = "heslo";            // heslo pro SMTP autentizaci


          $mail->From = $from;   // adresa odesílatele skriptu
          $mail->FromName = $domena; // jméno odesílatele skriptu (zobrazí se vedle adresy odesílatele)
          $mail->IsHTML(true);
          $mail->AddAddress($komu);  // přidáme příjemce

          if(!empty($nazev_prilohy)){
          $mail->AddAttachment($priloha, $nazev_prilohy);
          }

          $mail->Subject = $predmet;    // nastavíme předmět e-mailu
          $mail->Body = $text;  // nastavíme tělo e-mailu
          $mail->WordWrap = 50;   // je vhodné taky nastavit zalomení (po 50 znacích)
          $mail->CharSet = "utf-8";   // nastavíme kódování, ve kterém odesíláme e-mail



      if(!$mail->Send()) {  // odešleme e-mail
         echo 'Došlo k chybě při odeslání e-mailu.';
         echo 'Chybová hláška: ' . $mail->ErrorInfo;
      }
      else{
echo 'E-mail byl v pořádku odeslán.';
      }

}





Stran: [1]