PHPMailer als Email Versand in Scriptcase nutzen
Scriptcase verfügt über einen eigenen Emil-Versand. Für einige Anwendungen kann es dennoch vorteilhaft sein PHPMailer einzusetzen.
PHPMailer ist eine beliebte Bibliothek mit der flexibel Emails aus Programmen heraus verschickt werden können.
Vor allem ist PHPMailer gut dokumentiert und es gibt zahlreiche Beiträge mit Beispielen und Tipps im Internet.
In diesem Beitrag richten wir PHPMailer mit der externen Library in Scriptcase ein. Damit übernimmt Scriptcase die Verwaltung der Bibliotheken und wird beim Veröffentlichen auf Anwendungs-Servern (deploy) auch die Dateien mit einrichten und verwalten.
Einrichten der externen Library
In Scriptcase unter ‘Tools’ > ‘External Libraries’ eine neue Bibliothek anlegen.
Beispiel:
Wir legen sie als ‘Public’ (öffentliche) Bibliothek an und nennen sie php_mailer.
Mit Edit wird die Bibliothek zum bearbeiten aufgerufen und dann die Dateien dort eingespielt.
Hier kann die entsprechende ZIP-Datei heruntergeladen werden: download
Tipp: Darauf achten, dass die Sprach-Dateien in dem Verzeichnis ‘language’ liegen.
Dann den ‘Edit’-Modus schließen, die Bibliothek php_mailer auf ‘Use Library’ (benutze Bibliothek) schalten und ‘Save the project libraries’ (speichern der Bibliotheken) nicht vergessen.
Einbinden von PHPMailer
Etwas abweichend von dem normalen Einbinden der PHP-classes werden die PHPMailer Bibliotheken direkt im Programm-Code eingebunden, bevor sie benutzt werden können.
Beispiel:
1 2 3 |
require_once sc_url_library('sys', 'php_mailer', 'class.phpmailer.php'); require_once sc_url_library('sys', 'php_mailer', 'class.smtp.php'); require_once sc_url_library('sys', 'php_mailer', 'class.pop3.php'); |
Dabei wird der Pfad in dem PHP-Befehl
require_once durch das Scriptcase Makro
sc_url_library ersetzt.
Die Parameter geben dabei an:
‘sys’ – Es handelt sich um eine als ‘Public’ gespeicherte Bibliothek.
‘php_mailer’ – Name der Bibliothek
‘class.phpmailer.php’, etc. – Dateiname der PHPMailer-Class
Testen der Library
Zum Testen verwenden wir dann eine Control oder eine Form-Application in Scriptcase und fügen einen php-Button ein.
Der Code für den Button kann z.B. lauten:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
require_once sc_url_library('sys', 'php_mailer', 'class.phpmailer.php'); require_once sc_url_library('sys', 'php_mailer', 'class.smtp.php'); require_once sc_url_library('sys', 'php_mailer', 'class.pop3.php'); $mail = new PHPMailer; //$mail->SMTPDebug = 2; $mail->isSMTP(); $mail->CharSet = 'utf-8'; // Set mailer to use SMTP $mail->Host = 'smtp.strato.de'; // Provider $mail->SMTPAuth = true; $mail->Username = 'email@my.de'; // User $mail->Password = 'xxxx'; // Paßwort $Connection_Type = 'S'; // Sicherheits-Einstellung if ($Connection_Type == 'T') { $mail->SMTPSecure = 'tls'; } elseif ($Connection_Type == 'S') { $mail->SMTPSecure = 'ssl'; } else { $mail->SMTPSecure = ''; } $mail->Port = 465; // Port $mail->Timeout = 60; $mail->From = 'email@my.de'; $mail->FromName = 'Gunter Eibl'; $mail->addAddress('email@my.de','email@my.de'); $mail->addReplyTo('email@my.de'); $Mens_Type = 'H'; if ($Mens_Type == 'H') { $mail->isHTML(true); } else { $mail->isHTML(false); } $Message = 'Hello World <br> This ist the body of the message.'; $mail->Subject = 'This is subject of test email'; $mail->Body = $Message; // echo "verschicken..."; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; } |
Dabei müssen die Daten für den SMTP-Server, der zum verschicken verwendet werden soll, durch die eigenen ersetzt werden (Provider, User, Paßwort, Sicherheit, Port).
Auch die Email-Absender und -Empfänger (email@my.de) müssen entsprechend ersetzt werden.
Viel Erfolg beim Email-Versand !