[gelöst] Im Kontaktformular (webform) automatisch Datei anhängen (kein Upload)

am 25.07.2013 - 13:29 Uhr in
Hallo zusammen,
da ich selbst nicht weiterkomme, im Internet noch nichts wirklich hilfreiches gefunden habe und unter
diesem Forenthema http://www.drupalcenter.de/node/45787 auch noch keine
Lösung vorgeschlagen wurde, würde ich gerne folgendes wissen:
Ist es möglich, und wenn ja wie, dass ich bspw. ein PDF-Dokument, das irgendwo auf dem Server gespeichert wird, einer E-Mail
hinzufügen kann, die über das Kontaktformular (webform-7.x-3.18) verschickt wird.
Es soll also eine E-Mail mit einem durch den Kunden automatisch generierten PDF-Dokument an mich (Seitenbetreiber)
geschickt werden, ohne einen Dateiupload und ohne die Möglichkeit, diese Datei zu löschen.
Am besten wäre es, wenn ein Hinweis (in Form eines Icons oder Text à la dateianhang.pdf) im Kontaktformular sichtbar wäre.
Hat jemand einen Tipp, wie sich das realisieren lässt?
Schöne Grüße
A. Winter
- Anmelden oder Registrieren um Kommentare zu schreiben
Mittlerweile habe ich zum
am 30.07.2013 - 08:15 Uhr
Mittlerweile habe ich zum Glück selbst eine Lösung gefunden:
Erst einmal werden zwei weitere Module benötigt:
An den Standardeinstellungen habe ich nichts weiter verändert.
Durch Verwendung des Mime Mail-Moduls ließ sich nun in der Datei webform.module die
webform_mail-Funktion (bei mir Zeile 1681) ein attachments-Array hinzufügen.
Folgende Zeilen habe ich hinzugefügt:
<?php
$file = DRUPAL_ROOT . "/path/to/file/doc.pdf";
if(file_exists($file)) {
$attachment = array(
'filecontent' => file_get_contents($file),
'filename' => 'doc.pdf',
'filemime' => 'application/pdf',
);
$message['params']['attachments'][] = $attachment;
}
?>
Und siehe da... der E-Mail wurde diese Datei als Anhang hinzugefügt (falls sie denn existiert).
Ich hoffe, ich kann/konnte dem einen oder anderen damit helfen.
Achja, die größte Hilfe für mich war folgender Blog:
rapiddg.com/blog-post/drupal-7-html-e-mail-pdf-attachments
Viele Grüße
hook_mail_alter
am 30.07.2013 - 08:37 Uhr
... ließ sich nun in der Datei webform.module die
webform_mail-Funktion (bei mir Zeile 1681) ein attachments-Array hinzufügen.
Sorry, aber bitte mach das nicht. Was machst Du, wenn es Updates für Webform gibt? Jedes Mal wieder die Datei anpassen?
Du kannst für Deinen Code einfach ein kleines eigenes Modul erstellen und dort dann Deinen Code in [api:hook_mail_alter:7] schreiben:
<?php
/**
* Implements hook_mail_alter().
*/
function MYMODULE_mail_alter(&$message) {
if ($message['id'] == 'webform_submission') {
$file = DRUPAL_ROOT . '/path/to/file/doc.pdf';
if(file_exists($file)) {
$attachment = array(
'filecontent' => file_get_contents($file),
'filename' => 'doc.pdf',
'filemime' => 'application/pdf',
);
$message['params']['attachments'][] = $attachment;
}
}
}
?>
So kannst Du Dir sicher sein, dass das auch noch nach einem Update funktioniert und verstösst auch nicht gegen eine der goldenen Regeln von Drupal ...
hth,
Stefan
Vielen Dank Stefan für den
am 30.07.2013 - 11:08 Uhr
Vielen Dank Stefan für den Hinweis - Bei einem Update des Webform-Moduls möchte ich natürlich,
dass der Dateianhang immer noch funktioniert.
Ich habe leider noch nicht genügend Erfahrung und wusste mir nicht anders zu helfen ;-)
Also nochmals vielen Dank!