Odeslání emailu z PHP skriptu pomocí SMTP
Dobrý den,
využívám frameworku CodeIgniter4 který má třídu pro odeslání emailu přes SMTP, nicméně mi to nefunguje, zde posílám jaké mám nastavení. Zřídíl jsem si emailovou schránku no-reply@zdraveobedy.eu. Používám email zřízené emailové schránky v $SMTPUser a její heslo v $SMTPPass. Když změním $protocol na ‚mail‘ tak to funguje ale chci používat SMTP a nikoli funkci mail(). Zkoušel jsem i jiné porty a šifrování.
Děkuji za rady
<?php namespace Config; use CodeIgniter\Config\BaseConfig; class Email extends BaseConfig { /** * @var string */ public $fromEmail; /** * @var string */ public $fromName; /** * @var string */ public $recipients; /** * The "user agent" * * @var string */ public $userAgent = 'CodeIgniter'; /** * The mail sending protocol: mail, sendmail, smtp * * @var string */ public $protocol = 'smtp'; /** * The server path to Sendmail. * * @var string */ public $mailPath = '/usr/sbin/sendmail'; /** * SMTP Server Address * * @var string */ public $SMTPHost = 'wes1-smtp.wedos.net'; /** * SMTP Username * * @var string */ public $SMTPUser = 'no-reply@zdraveobedy.eu'; /** * SMTP Password * * @var string */ public $SMTPPass = 'zde mam heslo'; /** * SMTP Port * * @var integer */ public $SMTPPort = 587; /** * SMTP Timeout (in seconds) * * @var integer */ public $SMTPTimeout = 5; /** * Enable persistent SMTP connections * * @var boolean */ public $SMTPKeepAlive = false; /** * SMTP Encryption. Either tls or ssl * * @var string */ public $SMTPCrypto = 'tls'; /** * Enable word-wrap * * @var boolean */ public $wordWrap = true; /** * Character count to wrap at * * @var integer */ public $wrapChars = 76; /** * Type of mail, either 'text' or 'html' * * @var string */ public $mailType = 'html'; /** * Character set (utf-8, iso-8859-1, etc.) * * @var string */ public $charset = 'UTF-8'; /** * Whether to validate the email address * * @var boolean */ public $validate = false; /** * Email Priority. 1 = highest. 5 = lowest. 3 = normal * * @var integer */ public $priority = 3; /** * Newline character. (Use “\r\n” to comply with RFC 822) * * @var string */ public $CRLF = "\r\n"; /** * Newline character. (Use “\r\n” to comply with RFC 822) * * @var string */ public $newline = "\r\n"; /** * Enable BCC Batch Mode. * * @var boolean */ public $BCCBatchMode = false; /** * Number of emails in each BCC batch * * @var integer */ public $BCCBatchSize = 200; /** * Enable notify message from server * * @var boolean */ public $DSN = false; }
4 Answers
Dobrý den,
určitě doporučuji nastavit port 587 a zabezpečení TLS pro odesílání z webové aplikace viz.:
https://www.wedos.cz/odesilani-emailu
Dle chyby Sender address rejected: not owned by user no-reply@zdraveobedy.eu z logu by mohl být problém v nastavení hodnoty odesílatele $fromEmail. Pokud je to možné, tak zde zkuste přímo nastavit e-mailovou adresu odesílatele.
Co zkusit použít port 465, který se dafultně pužívá pro SSL/TLS
220 wes1-so2.wedos.net ESMTP Postfix - S.T.A.N.D.A. postak OUT hello: 250-wes1-so2.wedos.net 250-PIPELINING 250-SIZE 104857600 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN starttls: 220 2.0.0 Ready to start TLS hello: 250-wes1-so2.wedos.net 250-PIPELINING 250-SIZE 104857600 250-VRFY 250-ETRN 250-AUTH PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN from: 250 2.1.0 Ok to: 553 5.7.1 : Sender address rejected: not owned by user no-reply@zdraveobedy.eu The following SMTP error was encountered: 553 5.7.1 : Sender address rejected: not owned by user no-reply@zdraveobedy.eu quit: 221 2.0.0 Bye Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method. Date: Tue, 28 Sep 2021 10:57:00 +0200 From: =?UTF-8?Q?Zdrav=C3=A9=20ob=C4=9Bdy?= <censored.email@email.cz> Return-Path: <censored.email@email.cz> To: zdraveobedy@email.cz Subject: =?UTF-8?Q?Nov=C3=A1=20zpr=C3=A1va=20-=20Zdrav=C3=A9=20ob=C4=9Bdy?= Reply-To: <censored.email@email.cz> User-Agent: CodeIgniter X-Sender: censored.email@email.cz X-Mailer: CodeIgniter X-Priority: 4 (Low) Message-ID: <6152d8dced6472.83061545@email.cz> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="B_ALT_6152d8dced6562.42657457" This is a multi-part message in MIME format. Your email application may not support this format. --B_ALT_6152d8dced6562.42657457 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit
Tak podařilo se mi nakonec vytisknout debug, zde je výsledek:
Zdravím, nelze v aplikace zapnout debug nebo error log a podívat se, co je špatně?