Wie funktioniert we:sendMail mit Anhängen bei V 8.1
-
- webEdition Partner
- Beiträge: 109
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Weimar
- Kontaktdaten:
Wie funktioniert we:sendMail mit Anhängen bei V 8.1
Seit der Version 8.1 kann das Tag <we:sendMail/> angeblich Anhänge versenden aber wie funktioniert das? Habe jetzt ein wenig rumprobiert aber es funktioniert nicht.
Ich möchte einen Anhang aus einem E-Mail Formular versenden und das am besten mit dem Tag <we:sendMail/>. Geht das jetzt und wenn ja wie? (Formular mit Sendmail Tag, Einstellungen)
Aus dem Tag Editor werde ich nicht schlau. (attachments: Liste von Dateipfaden, die der Mail als Anhang eingefügt werden, TYP CSV / attachmentIDsPflichtfeld: Liste von IDs die der Mail als Anhang eingefügt werden sollen, Typ CSV)
Hat jemand eine Idee?
Vielen Dank für jegliche Infos und Hilfe...
Ich möchte einen Anhang aus einem E-Mail Formular versenden und das am besten mit dem Tag <we:sendMail/>. Geht das jetzt und wenn ja wie? (Formular mit Sendmail Tag, Einstellungen)
Aus dem Tag Editor werde ich nicht schlau. (attachments: Liste von Dateipfaden, die der Mail als Anhang eingefügt werden, TYP CSV / attachmentIDsPflichtfeld: Liste von IDs die der Mail als Anhang eingefügt werden sollen, Typ CSV)
Hat jemand eine Idee?
Vielen Dank für jegliche Infos und Hilfe...
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
da war wohl noch ein Bug drin, schau mal ob
https://sourceforge.net/p/webedition/so ... .class.php
bei dir geht.
https://sourceforge.net/p/webedition/so ... .class.php
bei dir geht.
webEdition-Kern-Entwickler
-
- webEdition Partner
- Beiträge: 109
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Weimar
- Kontaktdaten:
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
Ich habe die Datei we_tag_sendMail.class jetzt getauscht aber alles probieren hilft nichts.
Wie sollte es den funktionieren?
Mein gekürztes Beispiele:
Wie sollte es den funktionieren?
Mein gekürztes Beispiele:
Code: Alles auswählen
<we:ifVar match="1" name="submitted" type="post">
<we:ifFormToken>
<we:sendMail id="224" subject="Eine Nachricht von der Webseite" recipient="muster@muster.de" includeimages="true" recipientBCC="\$kontakt-email" from="\$kontakt-email" reply="\$kontakt-email" mimetype="text/html" charset="UTF-8" />
<we:else/>
Die Daten wurden bereits gesendet.
</we:ifFormToken>
</we:ifVar>
<we:form id="self" method="post" class="commentForm" name="kontakt" enctype="multipart/form-data">
<input class="form-control" type="file" name="file" />
<input type="hidden" name="submitted" value="1" />
<button type="submit" id="submitBtn" class="btn btn-danger mt-2">Jetzt senden</button>
</we:form>
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
z.B. so:
Wenn 1,2,3 Bilder, PDFs oder Text-Dateien sind macht das Sinn, für WE-Dokumente nicht.
Code: Alles auswählen
<we:sendMail id="224" subject="Eine Nachricht von der Webseite" recipient="muster@muster.de" includeimages="true" recipientBCC="\$kontakt-email" from="\$kontakt-email" reply="\$kontakt-email" mimetype="text/html" charset="UTF-8" attachmentIDs="1,2,3"/>
webEdition-Kern-Entwickler
-
- webEdition Partner
- Beiträge: 109
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Weimar
- Kontaktdaten:
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
Ok, mit internen IDs hat das funktioniert und das ist auch eine Super Funktion. Ich möchte aber keine internen Dokumente versenden sondern Anhänge aus einem Formular übergeben und versenden.
<input class="form-control" type="file" name="anhang" />
Bis jetzt geht das nur mit Formmail aber ich würde das gern mit Sendmail machen da ich mehr Freiräume in der Gestaltung habe.
Hatte das in der Versionshistorie eigentlich so verstanden das es jetzt geht.
VG Ramón
<input class="form-control" type="file" name="anhang" />
Bis jetzt geht das nur mit Formmail aber ich würde das gern mit Sendmail machen da ich mehr Freiräume in der Gestaltung habe.
Hatte das in der Versionshistorie eigentlich so verstanden das es jetzt geht.
VG Ramón
-
- Senior Member
- Beiträge: 601
- Registriert: So 4. Jul 2004, 00:24
- Wohnort: Düsseldorf
- Kontaktdaten:
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
Hallo in die Runde, habt Ihr dafür mittlerweile eine Lösung gefunden? Könnte ich gerade auch gebrauchen...ramon hat geschrieben: ↑Do 10. Okt 2019, 09:37 Ok, mit internen IDs hat das funktioniert und das ist auch eine Super Funktion. Ich möchte aber keine internen Dokumente versenden sondern Anhänge aus einem Formular übergeben und versenden.
<input class="form-control" type="file" name="anhang" />
Bis jetzt geht das nur mit Formmail aber ich würde das gern mit Sendmail machen da ich mehr Freiräume in der Gestaltung habe.
Hatte das in der Versionshistorie eigentlich so verstanden das es jetzt geht.
VG Ramón
multimediadesign.net · Atelier für Kommunikation
Grimmstr. 3 · 40235 Düsseldorf
Telefon ++49-211-4981791 · Telefax ++49-211-4981792
http://www.multimediadesign.net · bolle@multimediadesign.net
Grimmstr. 3 · 40235 Düsseldorf
Telefon ++49-211-4981791 · Telefax ++49-211-4981792
http://www.multimediadesign.net · bolle@multimediadesign.net
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
Moin in die Runde, ich habe das ganze wie folgt umgesetzt:
WICHTIG: Mir ist gerade eingefallen, dass sendMailAttach war glaube ich ein Custom Tag aus der Bugbase oder dem Forum. Sollte aber mittlerweile auch mit sendMail funktionieren.
Das Formular wird an eine Redirect Seite gesendet.
Schritt 1: Ich hole mir die Files aus dem Formular in ein Array und verschiebe sie in ein Serververzeichnis. Zusätzlich
entferne ich die Leerzeichen aus dem Dateinamen und setzte einen Counter.
Schritt 2: Das Files Array in einen Kommaseparierten String umwandeln
Schritt 3: Versand der Mail (Sollte jetzt auch mit sendMail gehen oder?)
Schritt 4: Dateien wieder löschen
Falls du Fragen hast, gerne stellen. Geht bestimmt auch irgendwie anders, aber das funktioniert für mich
LG
Finn
WICHTIG: Mir ist gerade eingefallen, dass sendMailAttach war glaube ich ein Custom Tag aus der Bugbase oder dem Forum. Sollte aber mittlerweile auch mit sendMail funktionieren.
Das Formular wird an eine Redirect Seite gesendet.
Schritt 1: Ich hole mir die Files aus dem Formular in ein Array und verschiebe sie in ein Serververzeichnis. Zusätzlich
entferne ich die Leerzeichen aus dem Dateinamen und setzte einen Counter.
Code: Alles auswählen
$uploaddir = 'serververzeichnis';
/*Dateien werden hochgeladen und verschoben*/
foreach ($_FILES as $key => $val) {
if ($val['error'] === 0 ){
/*Zähler hochzählen*/
$count++;
/*Leerzeichen aus den Dateinamen entfernen*/
$trimmedName = str_replace(' ', '', $val['name']);
$uploadfile = $uploaddir . '_' . $count . '_' . basename($trimmedName);
if (move_uploaded_file($val['tmp_name'], $uploadfile)) {
// echo "Datei ist valide und wurde erfolgreich hochgeladen.\n";
} else {
// echo "Möglicherweise eine Dateiupload-Attacke!\n";
}
// echo 'Weitere Debugging Informationen:';
}
$attachedFiles[$key] = $uploadfile;
}
Code: Alles auswählen
/*Files Array zu einem Kommaseparierten String umwandeln*/
$attachPath = implode(',', $attachedFiles);
Code: Alles auswählen
<we:sendMailAttach id="196" subject="\$contact_subject" recipient="\$contact_recipient" from="\$contact_sender"
attachPath="\$attachPath" mimetype="text/html" />
Code: Alles auswählen
<?php
/*Die Attachments wieder löschen*/
foreach ($attachedFiles as $key => $filename) {
// echo "$filename size " . filesize($filename) . "\n";
unlink($filename);
}
?>
LG
Finn
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
Ja, so kann man das durchaus aktuell machen. Ich würde dazu raten die Anhänge zumindest mal auf Basisdaten zu prüfen.
Dabei kann we_base_util::getMimeType helfen, das kann man dann einfach mit dem/den erlaubten mimes vergleichen. Man muß ja nicht unbedingt ein Virenverseuchtes doc verschicken, wenn man nur ein pdf verschicken will.
Dabei kann we_base_util::getMimeType helfen, das kann man dann einfach mit dem/den erlaubten mimes vergleichen. Man muß ja nicht unbedingt ein Virenverseuchtes doc verschicken, wenn man nur ein pdf verschicken will.
webEdition-Kern-Entwickler
-
- Senior Member
- Beiträge: 601
- Registriert: So 4. Jul 2004, 00:24
- Wohnort: Düsseldorf
- Kontaktdaten:
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
Hallo Finn, ich habe das fast verstandenFinn hat geschrieben: ↑Di 24. Mär 2020, 11:27 Moin in die Runde, ich habe das ganze wie folgt umgesetzt:
WICHTIG: Mir ist gerade eingefallen, dass sendMailAttach war glaube ich ein Custom Tag aus der Bugbase oder dem Forum. Sollte aber mittlerweile auch mit sendMail funktionieren.
Das Formular wird an eine Redirect Seite gesendet.
Schritt 1: Ich hole mir die Files aus dem Formular in ein Array und verschiebe sie in ein Serververzeichnis. Zusätzlich
entferne ich die Leerzeichen aus dem Dateinamen und setzte einen Counter.
Schritt 2: Das Files Array in einen Kommaseparierten String umwandelnCode: Alles auswählen
$uploaddir = 'serververzeichnis'; /*Dateien werden hochgeladen und verschoben*/ foreach ($_FILES as $key => $val) { if ($val['error'] === 0 ){ /*Zähler hochzählen*/ $count++; /*Leerzeichen aus den Dateinamen entfernen*/ $trimmedName = str_replace(' ', '', $val['name']); $uploadfile = $uploaddir . '_' . $count . '_' . basename($trimmedName); if (move_uploaded_file($val['tmp_name'], $uploadfile)) { // echo "Datei ist valide und wurde erfolgreich hochgeladen.\n"; } else { // echo "Möglicherweise eine Dateiupload-Attacke!\n"; } // echo 'Weitere Debugging Informationen:'; } $attachedFiles[$key] = $uploadfile; }
Schritt 3: Versand der Mail (Sollte jetzt auch mit sendMail gehen oder?)Code: Alles auswählen
/*Files Array zu einem Kommaseparierten String umwandeln*/ $attachPath = implode(',', $attachedFiles);
Schritt 4: Dateien wieder löschenCode: Alles auswählen
<we:sendMailAttach id="196" subject="\$contact_subject" recipient="\$contact_recipient" from="\$contact_sender" attachPath="\$attachPath" mimetype="text/html" />
Falls du Fragen hast, gerne stellen. Geht bestimmt auch irgendwie anders, aber das funktioniert für michCode: Alles auswählen
<?php /*Die Attachments wieder löschen*/ foreach ($attachedFiles as $key => $filename) { // echo "$filename size " . filesize($filename) . "\n"; unlink($filename); } ?>
LG
Finn
Ich habe aber eine konkrete Frage zu dem "Ich hole mir die Files aus dem Formular in ein Array". Nehmen wir mal an, ich habe drei Felder wo ich Dateien auswählen kann:
<input type="file" name="uploaded_file1" size="1000000" accept=".pdf">
<input type="file" name="uploaded_file2" size="1000000" accept=".pdf">
<input type="file" name="uploaded_file3" size="1000000" accept=".pdf">
Bei Deinem Beispiel hast Du die ja irgendwie in $_FILES reingepackt. Wie passiert denn das bzw. wie wird da bei Dir $_FILES definiert?
Sorry, für die Frage, bin da eher Gestalter als Coder
multimediadesign.net · Atelier für Kommunikation
Grimmstr. 3 · 40235 Düsseldorf
Telefon ++49-211-4981791 · Telefax ++49-211-4981792
http://www.multimediadesign.net · bolle@multimediadesign.net
Grimmstr. 3 · 40235 Düsseldorf
Telefon ++49-211-4981791 · Telefax ++49-211-4981792
http://www.multimediadesign.net · bolle@multimediadesign.net
-
- Senior Member
- Beiträge: 601
- Registriert: So 4. Jul 2004, 00:24
- Wohnort: Düsseldorf
- Kontaktdaten:
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
So, ich bin jetzt ein kleines Stück weiter gekommen. Ich habe das mal so wie von Finn beschrieben in mein Projekt eingebaut. Die Email wird auch versendet, nur bekomme ich da folgende Fehlermeldungen:
move_uploaded_file(/uploads/_1_): failed to open stream: No such file or directory
move_uploaded_file(): Unable to move '/tmp/phpxyuizc' to '/uploads/_1_'
unlink(/uploads/_1_): No such file or directory
Welche genauen Pfadangaben soll ich dem Skript denn mitgeben? Den Ordner "uploads" habe ich auf dem Server im Root-Verzeichnis der Website angelegt...
move_uploaded_file(/uploads/_1_): failed to open stream: No such file or directory
move_uploaded_file(): Unable to move '/tmp/phpxyuizc' to '/uploads/_1_'
unlink(/uploads/_1_): No such file or directory
Welche genauen Pfadangaben soll ich dem Skript denn mitgeben? Den Ordner "uploads" habe ich auf dem Server im Root-Verzeichnis der Website angelegt...
multimediadesign.net · Atelier für Kommunikation
Grimmstr. 3 · 40235 Düsseldorf
Telefon ++49-211-4981791 · Telefax ++49-211-4981792
http://www.multimediadesign.net · bolle@multimediadesign.net
Grimmstr. 3 · 40235 Düsseldorf
Telefon ++49-211-4981791 · Telefax ++49-211-4981792
http://www.multimediadesign.net · bolle@multimediadesign.net
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
nee, du wirst sicher kein solches Verzeichnis auf dem Server anlegen.move_uploaded_file(/uploads/_1_)
nimm einfach TEMP_DIR als Ziel, das ist das we-temp-dir
webEdition-Kern-Entwickler
-
- Senior Member
- Beiträge: 601
- Registriert: So 4. Jul 2004, 00:24
- Wohnort: Düsseldorf
- Kontaktdaten:
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
Hallo und danke für die Antwort,
theoretisch verstehe ich das , aber ich bekomme das nicht umgesetzt. Da fehlen mir schlicht die ausreichenden Kenntnisse. Aber ich bin ja lernwillig
Ich habe in meinem Formular
Code: Alles auswählen
<we:form pass_id="kontakt" name="kontakt" nameid="kontakt" id="self" method="post" class="formanizr" enctype="multipart/form-data">
Code: Alles auswählen
<input type="file" name="uploaded_file" size="1000000" accept=".pdf">
Ich habe nur keine Idee, wie ich dieses Skript jetzt so anpassen muss, dass die Datei auch temorär auf den Server geladen und der Pfad dann an das <we:sendMail> gehängt wird:
Code: Alles auswählen
$uploaddir = 'serververzeichnis';
/*Dateien werden hochgeladen und verschoben*/
foreach ($_FILES as $key => $val) {
if ($val['error'] === 0 ){
/*Zähler hochzählen*/
$count++;
/*Leerzeichen aus den Dateinamen entfernen*/
$trimmedName = str_replace(' ', '', $val['name']);
$uploadfile = $uploaddir . '_' . $count . '_' . basename($trimmedName);
if (move_uploaded_file($val['tmp_name'], $uploadfile)) {
// echo "Datei ist valide und wurde erfolgreich hochgeladen.\n";
} else {
// echo "Möglicherweise eine Dateiupload-Attacke!\n";
}
// echo 'Weitere Debugging Informationen:';
}
$attachedFiles[$key] = $uploadfile;
}
multimediadesign.net · Atelier für Kommunikation
Grimmstr. 3 · 40235 Düsseldorf
Telefon ++49-211-4981791 · Telefax ++49-211-4981792
http://www.multimediadesign.net · bolle@multimediadesign.net
Grimmstr. 3 · 40235 Düsseldorf
Telefon ++49-211-4981791 · Telefax ++49-211-4981792
http://www.multimediadesign.net · bolle@multimediadesign.net
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
Code: Alles auswählen
$uploaddir = TEMP_DIR;
webEdition-Kern-Entwickler
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
Das $_FILES ist ein standard Verzeichnis für File Uploads. Ich verschiebe die Dateien, weil ich sie auf dem Server zusätzlich sichere. Für den Fall, dass das empfangende Mailkonto die Mailgröße nicht empfangen darf.
Du kannst auch wie Mo sagt, die Daten direkt aus dem temporären Verzeichnis holen.
Den Counter kannst du theoretisch auch rauslassen, wenn du den nicht brauchst.
LG
Finn
Du kannst auch wie Mo sagt, die Daten direkt aus dem temporären Verzeichnis holen.
Den Counter kannst du theoretisch auch rauslassen, wenn du den nicht brauchst.
LG
Finn
-
- Member
- Beiträge: 63
- Registriert: Fr 27. Jan 2012, 13:14
Re: Wie funktioniert we:sendMail mit Anhängen bei V 8.1
Hallo Ihr Lieben,
irgendwie bekomme ich das hier nicht hin. Versuche jetzt seit 2 Tagen einen Upload an sendmail anzuhängen. Scheitere allerdings jedes Mal!!
Habe ein einfaches Formular aufgebaut mit der Möglichkeit ein PDF hochzuladen:
<form method="post" pass_id="contactFormAdvanced" target="_self" id="contactFormAdvanced" name="we_global_form" onsubmit=";if(self.weWysiwygSetHiddenText){weWysiwygSetHiddenText();};return true;" action="/kontakt/kontakt-ok.php" enctype="multipart/form-data">
<input type="file" name="upload" size="100000000" accept=".pdf">
</form>
Dann auf der Folgeseite:
<we:sendMail from="info@xxx.de" recipient="mustermann@xxx.de" attachPath="\$attachPath" ubject="Anfrage über Kontaktformular" id="508" charset="utf-8" mimetype="text/html" enctype="multipart/form-data" />
Mails kommen prima an - ohne Anhang.
An welcher Stelle kommt nun der vorgeschlagene Code hin:
Habe alles mögliche versucht - bin zu doof dafür. Kann mir jemand so ganz einfach sagen was wann wohin soll???
Das wäre toll. - PS verwende noch die 8.1.5
glg
irgendwie bekomme ich das hier nicht hin. Versuche jetzt seit 2 Tagen einen Upload an sendmail anzuhängen. Scheitere allerdings jedes Mal!!
Habe ein einfaches Formular aufgebaut mit der Möglichkeit ein PDF hochzuladen:
<form method="post" pass_id="contactFormAdvanced" target="_self" id="contactFormAdvanced" name="we_global_form" onsubmit=";if(self.weWysiwygSetHiddenText){weWysiwygSetHiddenText();};return true;" action="/kontakt/kontakt-ok.php" enctype="multipart/form-data">
<input type="file" name="upload" size="100000000" accept=".pdf">
</form>
Dann auf der Folgeseite:
<we:sendMail from="info@xxx.de" recipient="mustermann@xxx.de" attachPath="\$attachPath" ubject="Anfrage über Kontaktformular" id="508" charset="utf-8" mimetype="text/html" enctype="multipart/form-data" />
Mails kommen prima an - ohne Anhang.
An welcher Stelle kommt nun der vorgeschlagene Code hin:
Code: Alles auswählen
$uploaddir = 'TEMP_DIR';
/*Dateien werden hochgeladen und verschoben*/
foreach ($_FILES as $key => $val) {
if ($val['error'] === 0 ){
/*Zähler hochzählen*/
$count++;
/*Leerzeichen aus den Dateinamen entfernen*/
$trimmedName = str_replace(' ', '', $val['name']);
$uploadfile = $uploaddir . '_' . $count . '_' . basename($trimmedName);
if (move_uploaded_file($val['tmp_name'], $uploadfile)) {
// echo "Datei ist valide und wurde erfolgreich hochgeladen.\n";
} else {
// echo "Möglicherweise eine Dateiupload-Attacke!\n";
}
// echo 'Weitere Debugging Informationen:';
}
$attachedFiles[$key] = $uploadfile;
}
Habe alles mögliche versucht - bin zu doof dafür. Kann mir jemand so ganz einfach sagen was wann wohin soll???
Das wäre toll. - PS verwende noch die 8.1.5
glg
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste