1. Domov
  2. E-maily
  3. Ako zabrániť, aby vám išli maily z webových formulárov do spamu

Ako zabrániť, aby vám išli maily z webových formulárov do spamu

Ak vám chodia emaily z odoslaných webových formulárov do spamu, dôvodom bude pravdepodobne odosielanie emailu z PHP scriptov cez funkciu mail. Pri dnešnej ochrane proti spamu je táto funkcia už zastaralá a takto odoslaný email je často filtrami označený ako spam, pretože email nie je podpísaný DKIM kľúčom a odosieľatelom je webserver.

Z týchto dôvodov odporúčame používať pri naprogramovaní formulára knižnice, ktoré email odosielajú cez SMTP ako každý iný emailový klient.

Na to odporúčame nainštalovať jednu z týchto knižníc:

Príklad použitia pre Swift Mailer (potrebná PHP verzia 7 alebo vyššia):

require_once '/path/to/vendor/autoload.php';

// Create the Transport
$transport = (new Swift_SmtpTransport('smtp.example.org', 25))
  ->setUsername('your username')
  ->setPassword('your password')
;

// Create the Mailer using your created Transport
$mailer = new Swift_Mailer($transport);

// Create a message
$message = (new Swift_Message('Wonderful Subject'))
  ->setFrom(['john@doe.com' => 'John Doe'])
  ->setTo(['receiver@domain.org', 'other@domain.org' => 'A name'])
  ->setBody('Here is the message itself')
  ;

// Send the message
$result = $mailer->send($message);

Príklad použitia pre PHPMailer (potrebná PHP verzia 5.5 alebo vyššia):

<?php
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

//Load Composer's autoloader
require 'vendor/autoload.php';

$mail = new PHPMailer(true);                      // Passing `true` enables exceptions
try {
//Server settings
$mail->SMTPDebug = 2;                             // Enable verbose debug output
$mail->isSMTP();                                  // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com';               // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                           // Enable SMTP authentication
$mail->Username = 'user@example.com';           // SMTP username
$mail->Password = 'secret';                       // SMTP password
$mail->SMTPSecure = 'tls';                        // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                // TCP port to connect to

//Recipients
$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient
$mail->addAddress('ellen@example.com');           // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');

//Attachments
$mail->addAttachment('/var/tmp/file.tar.gz');       // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg');  // Optional name

//Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$mail->send();
echo 'Message has been sent';
} catch (Exception $e) {
echo 'Message could not be sent. Mailer Error: ', $mail->ErrorInfo;
}

Tiež je dôležité vždy nastaviť správny server pre odosielanie pošty (SMTP), vaše prihlasovacie meno, heslo a odosielateľa.

Ak máte WordPress stránku

V prípade, že máte WordPress stránku, nemusíte nič programovať. Stačí využiť plugin na SMTP autentifikáciu, prípadne využiť formulár, ktorý odosiela správy cez SMTP:

  • https://wordpress.org/plugins/easy-wp-smtp    (ideálny pre kontaktné formuláre Contact Form 7)
  • https://wordpress.org/plugins/pirate-forms       (formulár, ktorý odosiela správy cez SMTP)
  • https://wordpress.org/plugins/wp-mail-bank
Aktualizované 4. marca 2021

Bol tento článok nápomocný?

Súvisiace články

Pridajte komentár