... und dann eine Bestätigungsmail mit einem PDF.
Kein Problem, Kunde.
Denkste ! Nach verzweifelnden Stunden mit den Modulen PHPMailer, SMTP, mimemail, mailsystem und htmlmail rief ich Karsten an, der sich deutlich hinter dem Ohr kratzte und mir dann mit den Worten "da hab ich damals einen ganzen Tag für gebraucht" den entscheidenden Link auf drupal.org gab, wo ein Patch von ihm zu finden ist.
Und so geht's:
Benötigt werden die Module und der Patch
- Mime Mail erzeugt HTML-Mails und kann auch attachments
- Mail System für Mime Mail
- PHPMailer sendet via SMTP - vorzuziehen, wenn man keine eigene andere Lösung hat
- drupal.org/node/811774 #12 der phpmailer-patch
Module aktivieren und Patch einspielen:
- Patch in den Modulordner legen
- im Terminal zu diesem Ordner wechseln und patchen:
>cd sites/alle/modules/phpmailer
>patch < phpmailer_811774_07_1.patch
Einstellungen:
admin/config/system/phpmailer
- nicht vergessen, die Checkbox oben anzuschalten. Eine Testmail (unter Test configuration) zeigt, obs funktioniert.
admin/config/system/mailsystem
- bei den oberen Dropdowns MimeMailSystem wählen.
admin/config/system/mimemail
- Checkboxen aus
- E-mail format auf Full HTML
- E-mail engine: PHPMailer
Aufruf in PHP:
<?php
$params = array(
'from' => 'mir [at] abc [dot] de',
'subject' => 'Titel',
'message' => 'Ein schönes Bild im Anhang.',
'attachments' => array(
'0' => array (
'uri' => NULL,
'filepath' => 'sites/all/themes/mytheme/bild.png',
'filename' => 'superbild.jpeg',
'filemime' => 'image/jpeg',
),
),
);
// siehe function ubg_mw_mail()
drupal_mail('ubg_mw', 'standard', 'dich [at] xxx [dot] de', $language, $params, 'mir [at] abc [dot] de', true);
?>Wichtig hier: 'attachments' ist ein Array von Arrays, weil es ja auch mehrere Anhänge geben kann.
in der function my_module_mail() wird dann die $message zusammengebaut. Der $key standard kann natürlich auch anders heissen. Hier ein Beispiel:
<?php
/**
* hook_mail - hier wird die Mail $message zusammengebaut
*/
function my_module_mail($key, &$message, $params) {
switch ($key) {
case 'standard':
$message['subject'] = $params['subject'];
$message['body'][] = $params['message'];
if (isset($params['Cc'])) $message['headers']['Cc'] = $params['Cc'];
if (isset($params['Bcc'])) $message['headers']['Bcc'] = $params['Bcc'];
break;
} // switch $key
}
?>Viel Erfolg !













