wMailer::sendMailStr

Sendet eine E-Mail basierend auf einem String

Funktionsaufruf

Boolean sendMailStr(String mailStr, Array placeholders = array(), Array placeholders = array(), Array attachment = array(), Array options = array())

Parameter

mailStr
E-Mail Inhalt
placeholders
Assoziative Werte, die im MailString ersetzt werden sollen (z.B. [!--name--])
placeholdersExt
Assoziative Werte, die in MailString inklusive dazwischenliegendem Text ersetzt werden sollen (z.B. [!--infoExt--]Ich wünsche Informationen[!--infoExt--])
attachement
Anhang
options
engineType - [PHP|zend|wSMTP2]
Mail-Engine
smtpData
Alternative SMTP-Daten beim Einsatz von wSMTP2
useOutbox
Falls die Mail in den Postausgang gelegt werden soll
keepConnection [|true]
Falls die Verbindung z.B. für Mehrfachversand nicht erneut aufgebaut werden soll
preStrValue
Zeichenkette vor einem Wert
postStrValue
Zeichenkette nach einem Wert
preStrValueMulti
Zeichenkette vor einem Mehrfachwert
delimiterValueMulti
Zeichenkette zwischen jedem Mehrfachwert
postStrValueMulti
Zeichenkette nach einem Mehrfachwert

Beispiele:

Beispiel 1: Versand einer Text E-Mail basierend auf einem String

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

//Platzhalter zuweisen
$placeholders = array();
//Absender
$placeholders['From'] = 'absender@domain.dd';
//Empfänger
$placeholders['To'] = 'empfaenger@domain.dd';
//Betreff
$placeholders['Subject'] = 'Beispiel-Betreff';

//Beispieldaten
$placeholders['name'] = 'Max Mustermann';
$placeholders['age'] = '87';
$placeholders['notice'] = 'Max ist ein alter Mann';

// Formularfeld mit Mehrfach-Werten (multiValue):
$placeholders['channel'] = array('Zeitung','TV','Sonstige');

$mailStr = 'From: [!--From--]
To: [!--To--]
Subject: [!--Subject--]
Content-Type: text/plain; charset=UTF-8


Name: [!--name--]
Alter: [!--age--]
Anmerkung: [!--notice--]

Nachrichtenkanal: [!--channel--]'
;

// Optionen (z.B. engineType [PHP|zend|wSMTP])
$options = array();
$options['engineType'] = "";
$options['preStrValue'] = ""; # fügt die angegebene Zeichenkette vor den Wert eines Formularfeldes ein
$options['preStrValueMulti'] = ""; # fügt die angegebene Zeichenkette vor jedem Wert eines Formularauswahlfeld ein (z.B. Checkboxen)
$options['delimiterValueMulti'] = "\n\r"; # setzt die angegebene Zeichenkette als Trennzeichen zwischen Mehrfachwerten
$options['postStrValue'] = ""; # fügt die angegebene Zeichenkette nach den Wert eines Formularfeldes ein
$options['postStrValueMulti'] = ""; # fügt die angegebene Zeichenkette nach jedem Wert eines Formularauswahlfeld ein (z.B. Checkboxen)

//E-Mail senden
if(wMailer::sendMailStr($mailStr, $placeholders, null, null, $options)){
print
"Die E-Mail wurde erfolgreich verschickt!";
}
else{
$lastErrorMessage = wMailer::getLastError();
print
"Es ist ein Fehler beim Versand aufgetreten: ".$lastErrorMessage."\n";
}

Beispiel 2: Versand einer Text E-Mail basierend auf einem String und Abfrage von Platzhaltern (if)

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

//Platzhalter zuweisen
$placeholders = array();
//Absender
$placeholders['From'] = 'absender@domain.dd';
//Empfänger
$placeholders['To'] = 'empfaenger@domain.dd';
//Betreff
$placeholders['Subject'] = 'Beispiel-Betreff';

//Beispieldaten
$placeholders['gender'] = 'male';
$placeholders['name'] = 'Max Mustermann';

$mailStr = 'From: [!--From--]
To: [!--To--]
Subject: [!--Subject--]
Content-Type: text/plain; charset=UTF-8


Name: [!--name--]
Geschlecht: [!--#if test="gender=\'male\'" --]männlich[!--#endif--][!--#if test="gender=\'female\'" --]weiblich[!--#endif--]'
;


//E-Mail senden
if(wMailer::sendMailStr($mailStr, $placeholders, null, null, null)){
print
"Die E-Mail wurde erfolgreich verschickt!";
}
else{
$lastErrorMessage = wMailer::getLastError();
print
"Es ist ein Fehler beim Versand aufgetreten: ".$lastErrorMessage."\n";
}

Beispiel 3: Versand einer HTML E-Mail basierend auf einem String

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

//Platzhalter zuweisen
$placeholders = array();
//Absender
$placeholders['From'] = 'absender@domain.dd';
//Empfänger
$placeholders['To'] = 'empfaenger@domain.dd';
//Betreff
$placeholders['Subject'] = 'Beispiel-Betreff';

//Beispieldaten
$placeholders['name'] = 'Max Mustermann';
$placeholders['age'] = '87';
$placeholders['notice'] = 'Max ist ein alter Mann';

$mailStr = 'From: [!--From--]
To: [!--To--]
Subject: [!--Subject--]
Content-Type: text/html; charset=UTF-8

<h1>Nachricht von [!--name--]</h1>
Name: [!--name--]<br/>
Alter: [!--age--]<br/><br/>
Anmerkung: [!--notice--]<br/>'
;

//E-Mail senden
if(wMailer::sendMailStr($mailStr, $placeholders)){
print
"Die E-Mail wurde erfolgreich verschickt!";
}
else{
$lastErrorMessage = wMailer::getLastError();
print
"Es ist ein Fehler beim Versand aufgetreten: ".$lastErrorMessage."\n";
}

Beispiel 4: Versand einer E-Mail mit Anhang basierend auf einem String

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

//Platzhalter zuweisen
$placeholders = array();
//Absender
$placeholders['From'] = 'absender@domain.dd'; //
//Empfänger
$placeholders['To'] = 'empfaenger@domain.dd'; //
//Betreff
$placeholders['Subject'] = 'Beispiel-Betreff';

//Beispieldaten
$placeholders['name'] = 'Max Mustermann';
$placeholders['age'] = '87';
$placeholders['notice'] = 'Max ist ein alter Mann';

// Beispieldaten Ext
// Assoziative Werte, die in MailString inklusive dazwischenliegendem Text ersetzt werden sollen
// (z.B. [!--infoExt--]Ich wünsche Informationen[!--infoExt--])
$placeholdersExt['infoExt'] = 'Ich wünsche Informationen';

$mailStr = 'From: [!--From--]
To: [!--To--]
Subject: [!--Subject--]


Name: [!--name--]
Alter: [!--age--]
Anmerkung: [!--notice--]'
;

//Vorbereiten des Attachments
$attach = array(
array(
'file' => $_SERVER['DOCUMENT_ROOT'].'/baseAssets/docs/word_testdatei.docx',
'filename' => 'word_testdatei.docx',

)
);

// Optionen (z.B. engineType [PHP|zend|wSMTP])
$options = array('engineType' => 'zend');

//E-Mail senden
if(wMailer::sendMailStr($mailStr, $placeholders, null, $attach, null)){
// wenn über SSL verschickt werden soll (nur für Text-Mails ohne Anhänge möglich!):
//if(wMailer::sendMailStr($mailStr, $placeholders, null, null, array('engineType' => 'zend'))){
print "Die E-Mail wurde erfolgreich verschickt!";
}
else{
$lastErrorMessage = wMailer::getLastError();
print
"Es ist ein Fehler beim Versand aufgetreten: ".$lastErrorMessage."\n";
}

Beispiel:

Quelltext

<?php

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

//Platzhalter zuweisen
$placeholders = array();
//Absender
$placeholders['From'] = 'absender@domain.dd'; //
//Empfänger
$placeholders['To'] = 'empfaenger@domain.dd'; //
//Betreff
$placeholders['Subject'] = 'Beispiel-Betreff';

//Beispieldaten
$placeholders['name'] = 'Max Mustermann';
$placeholders['age'] = '87';
$placeholders['notice'] = 'Max ist ein alter Mann';

// Beispieldaten Ext
// Assoziative Werte, die in MailString inklusive dazwischenliegendem Text ersetzt werden sollen
// (z.B. [!--infoExt--]Ich wünsche Informationen[!--infoExt--])
$placeholdersExt['infoExt'] = 'Ich wünsche Informationen';

$mailStr = 'From: [!--From--]
To: [!--To--]
Subject: [!--Subject--]


Name: [!--name--]
Alter: [!--age--]
Anmerkung: [!--notice--]'
;

//Vorbereiten des Attachments
$attach = array(
array(
'file' => $_SERVER['DOCUMENT_ROOT'].'/baseAssets/docs/word_testdatei.docx',
'filename' => 'word_testdatei.docx',

)
);

// Optionen (z.B. engineType [PHP|zend|wSMTP])
$options = array('engineType' => 'zend');

//E-Mail senden
if(wMailer::sendMailStr($mailStr, $placeholders, null, $attach, null)){
// wenn über SSL verschickt werden soll (nur für Text-Mails ohne Anhänge möglich!):
//if(wMailer::sendMailStr($mailStr, $placeholders, null, null, array('engineType' => 'zend'))){
print "Die E-Mail wurde erfolgreich verschickt!";
}
else{
$lastErrorMessage = wMailer::getLastError();
print
"Es ist ein Fehler beim Versand aufgetreten: ".$lastErrorMessage."\n";
}

?>

Beispiel 5: Versand einer E-Mail über alternative SMTP-Daten

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

//Platzhalter zuweisen
$placeholders = array();
//Absender
$placeholders['From'] = 'absender@domain.dd';
//Empfänger
$placeholders['To'] = 'empfaenger@domain.dd';
//Betreff
$placeholders['Subject'] = 'Beispiel-Betreff';

$mailStr = 'From: [!--From--]
To: [!--To--]
Subject: [!--Subject--]


Hier kommt eine Test E-Mail!

Ihr Test-Team'
;

$options = array('engineType' => 'wSMTP2');

$options['smtpData'] = array('host' => 'Ihr-SMTP-Server.tld',
'username' => 'Ihr-Mailbox-User',
'password' => 'Ihr-Mailbox-Password',
'port' => '', // z.B. '465'
'timeout' => '60',
'connectByHostName' => '', // '1' oder leer
'secure' => 'ssl', // 'ssl' oder 'tls' bei gesicherter Verbindung
'saveSent' => ''
);
// oder Alternativ über Auslesen der Conf-Daten:
/*
$options['smtpData'] = array('host' => wApplication::getOptionPath('/wConf/mail/smtp/server2/@host'),
'username' => wApplication::getOptionPath('/wConf/mail/smtp/server2/@userName'),
'password' => wApplication::getOptionPath('/wConf/mail/smtp/server2/@userPass'),
'port' => wApplication::getOptionPath('/wConf/mail/smtp/server2/@port'),
'timeout' => wApplication::getOptionPath('/wConf/mail/smtp/server2/@timeout'),
'connectByHostName' => wApplication::getOptionPath('/wConf/mail/smtp/server2/@connectByHostName'),
'secure' => wApplication::getOptionPath('/wConf/mail/smtp/server2/@secure'),
'saveSent' => wApplication::getOptionPath('/wConf/mail/smtp/server2/@saveSent')
);
*/

//E-Mail senden
if(wMailer::sendMailStr($mailStr, $placeholders, null, null, $options )){
print
"Die E-Mail wurde erfolgreich verschickt!";
}
else{
$lastErrorMessage = wMailer::getLastError();
print
"Es ist ein Fehler beim Versand aufgetreten: ".$lastErrorMessage."\n";
}

Beispiel 6: E-Mail-String debuggen ($GLOBALS['debugMailStr'])

require_once($_SERVER["DOCUMENT_ROOT"]."/weblication/grid.php");

/*
Nutzen Sie die Globale Variable $GLOBAlS['debugMailStr'] um den Mailstring für Testzwecke auszugeben.
Funktioniert nur im eingeloggten Zustand für Administratoren
*/

$GLOBALS['debugMailStr'] = true;

//Platzhalter zuweisen
$placeholders = array();
......

Hinweis
Beim Einsatz von Framework-Funktionen in eigenen Skripten beachten Sie bitte den Artikel "So verwenden Sie das PHP-Framework in eigenen Scripten".
Wenn Sie eine Funktion innerhalb einer Weblication® Seite z.B. über das PHP-Quelltext Element oder in einem XSL-Template über wsl:php einbinden, muss das Framework über die grid.php nicht mehr referenziert werden.