Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
programmieren:wordpress:wp_mail_mit_smpt_daten_verschicken [2024/07/16 17:04] – [WP_MAIL mit einer SMTP-Verbindung verschicken (via PHPMailer)] jgehrkeprogrammieren:wordpress:wp_mail_mit_smpt_daten_verschicken [2024/07/16 17:16] (current) – [Hinweis zur SMPTSecure Einstellung] jgehrke
Line 3: Line 3:
 Oft ist sinnvoll wp_mail()' nicht direkt vom Webserver verschicken zu lassen. Mails vom Webserver landen schnell im Spam, weil sie nicht verifiziert werden können, oder die eigentliche E-Mails auf einem anderem System liegen. Daher ist es nützlich sich eine gesonderte E-Mail-Adresse einzurichten und das Wordpress dann per SMTP verbinden zu lassen. Oft ist sinnvoll wp_mail()' nicht direkt vom Webserver verschicken zu lassen. Mails vom Webserver landen schnell im Spam, weil sie nicht verifiziert werden können, oder die eigentliche E-Mails auf einem anderem System liegen. Daher ist es nützlich sich eine gesonderte E-Mail-Adresse einzurichten und das Wordpress dann per SMTP verbinden zu lassen.
  
-In Wordpress werden E-Mail über die Library PHPMailer verschickt, und die kommt von Haus aus mit einer Möglichkeit eine SMTP-Verbindung herzustellen.+In Wordpress werden E-Mail über die [[https://github.com/PHPMailer/PHPMailer|Library PHPMailer]] verschickt, und die kommt von Haus aus mit einer Möglichkeit eine SMTP-Verbindung herzustellen.
  
 Das ist ein einfacher Beispiel Code wie man ohne Plugin eine SMTP Verbindung in Wordpress herstellen kann: Das ist ein einfacher Beispiel Code wie man ohne Plugin eine SMTP Verbindung in Wordpress herstellen kann:
Line 61: Line 61:
  
 Eine einfachere Version des Codes gibt es [[https://www.media-techport.de/2020/02/emails-aus-wordpress-via-smtp-versenden-ohne-plugin/|hier im Blog]] von media-techport.  Eine einfachere Version des Codes gibt es [[https://www.media-techport.de/2020/02/emails-aus-wordpress-via-smtp-versenden-ohne-plugin/|hier im Blog]] von media-techport. 
 +
 +===== Hinweis zur SMPTSecure Einstellung =====
 +
 +An dieser stelle wird eine Konstante übergeben, die auch in standard Systemen mit dem Port zusammen hängt:
 +
 +<code txt>
 + PHPMailer::ENCRYPTION_SMTPS » Port 465
 + PHPMailer::ENCRYPTION_STARTTLS » Port 587
 +</code>
 +
 +Man muss jedoch nicht die Konstanten des PHPMailers nutzen, mann kann auch Strings hinterlegen
 +
 +<code>
 + $phpmailer->SMTPSecure = 'ssl'; // gleiche wie» PHPMailer::ENCRYPTION_SMTPS;
 + $phpmailer->SMTPSecure = 'tls'; // gleiche wie» PHPMailer::ENCRYPTION_STARTTLS;
 +</code>
 +
 +Das zeigt ein Blick in die [[https://github.com/PHPMailer/PHPMailer/blob/master/src/PHPMailer.php|PHPMailer-Klasse auf Github]].
  
 ===== SMTP Klasse nutzen um Auth-Daten von ACF zu bekommen ===== ===== SMTP Klasse nutzen um Auth-Daten von ACF zu bekommen =====
Line 104: Line 122:
  public static function do_configure_phpmailer( PHPMailer $phpmailer )  public static function do_configure_phpmailer( PHPMailer $phpmailer )
  {  {
 + self::set_private_smtp_parameters();
 +
  // Exit falls SMTP gar nicht gewünscht ist, via ACF Optionen  // Exit falls SMTP gar nicht gewünscht ist, via ACF Optionen
  if( !self::$use_smtp){  if( !self::$use_smtp){
Line 129: Line 149:
  private static function set_private_smtp_parameters()  private static function set_private_smtp_parameters()
  {  {
- self::$use_smtp = get_field( 'acf_option_use_smpt',  'options' ); + self::$use_smtp = get_field( 'acf_option_use_smpt',  'options'?? false
- self::$Host     = get_field( 'acf_option_smpt_host', 'options' ); + self::$Host     = get_field( 'acf_option_smpt_host', 'options'?? ''
- self::$Port     = get_field( 'acf_option_smpt_port', 'options' ); + self::$Port     = get_field( 'acf_option_smpt_port', 'options'?? ''
- self::$Username = get_field( 'acf_option_smpt_user', 'options' ); + self::$Username = get_field( 'acf_option_smpt_user', 'options'?? ''
- self::$Password = get_field( 'acf_option_smpt_pass', 'options' ); + self::$Password = get_field( 'acf_option_smpt_pass', 'options'?? ''
- self::$From     = get_field( 'acf_option_smpt_from', 'options' ); + self::$From     = get_field( 'acf_option_smpt_from', 'options'?? ''
- self::$FromName = get_field( 'acf_option_smpt_name', 'options' );+ self::$FromName = get_field( 'acf_option_smpt_name', 'options'?? '';
  }  }
 } }
 </code> </code>
  

Page Tools