Zum Inhalt springen

Formhandler sendet keine E-Mails

Erstellt am 18. Januar 2010 · 15 Antworten · letzte Antwort am 4. Februar 2010

Tags: Frage

Galaxist ·

Hallo,

habe die Formhandler Extension laufen. Die lief so lange, bis ich sie heute auf Version 0.9.5 updatete. Jetzt habe ich es hinbekommen, dass schon mal wieder das Formular angezeigt wird. Nur der Debug-Mode zeigt mir, dass die Extension beim Mail-Finisher stehen blebt, ohne eine Mail zu versenden.
Weis jemand, was da nach dem Update alles geändert werden muss?
Typo3 Version: 4.2.8

So schaut mein TypoScript aus:

plugin.Tx_Formhandler.settings.predef.anfrage {

	# Common configuration
	name = Mein Formular
	debug = 1
	addErrorAnchors = 1
	storeGP = 1
	additionalIncludePaths {
		1 = fileadmin/kornhair/templates/formhandler/scripts
	}
	
	templateFile = fileadmin/kornhair/templates/formhandler/formhandler-template-02.html
	langFile =fileadmin/kornhair/templates/formhandler/formhandler-lang.xml
	stylesheetFile = fileadmin/kornhair/css/formhandler-styles.css
	formValuesPrefix = formhandler

	# HTML wrapping by validation error
	errorListTemplate {
		totalWrap = <ul>|</ul>
		singleWrap = <li class="error">|</li>
	}
	singleErrorTemplate {
		singleWrap = <span class="error">|</span><br />
	}

	# File configuration
	singleFileMarkerTemplate {
		totalWrap = <ul>|</ul>
		singleWrap = <li style="color:maroon;">|</li>
		#showThumbnails = 1
	}
	totalFilesMarkerTemplate {
		totalWrap = <ul>|</ul>
		singleWrap = <li style="color:red;">|</li>
	}
	files {
		clearTempFilesOlderThanHours = 24
		uploadFolder = uploads/formhandler/tmp2/
		enableAjaxFileRemoval = 1
	}

	# Validators configuration
	validators {
		1 {
			class = Tx_Formhandler_Validator_Default
			config {
				fieldConf {
					picture {
						errorCheck.1 = fileAllowedTypes
						errorCheck.1.allowedTypes = jpg,gif
						errorCheck.2 = fileMinSize
						errorCheck.2.minSize = 2000
						errorCheck.3 = fileMaxSize
						errorCheck.3.maxSize= 100000
						errorCheck.4 = fileMaxCount
						errorCheck.4.maxCount = 2
					}
					firstname {
						errorCheck.1 = required
						errorCheck.2 = maxLength
						errorCheck.2.value = 50
					}
					lastname {
						errorCheck.1 = required
						errorCheck.2 = maxLength
						errorCheck.2.value = 50
					}
					strasse {
						errorCheck.1 = required
						errorCheck.2 = maxLength
						errorCheck.2.value = 50
					}
					plz {
						errorCheck.1 = required
						errorCheck.2 = maxLength
						errorCheck.2.value = 5
					}
					ort {
						errorCheck.1 = required
						errorCheck.2 = maxLength
						errorCheck.2.value = 50
					}
					tel {
						errorCheck.1 = required
						errorCheck.2 = maxLength
						errorCheck.2.value = 50
					}
					email {
						errorCheck.1 = required
						errorCheck.2 = email
					}
					contact_via {
						errorCheck.1 = required
					}
					budget {
						errorCheck.1 = integer
						errorCheck.2 = maxLength
						errorCheck.2.value = 6
					}
					captchafield {
						errorCheck.1 = required
						errorCheck.2 = captcha
					}
				}
			}
		}
	}

	# Interceptors configuration
	initInterceptors {
		1 {
			#class = Tx_Formhandler_Interceptor_RemoveXSS
			class = Tx_Formhandler_Interceptor_Filtreatment
		}
	}

	# Loggers configuration
	loggers {
		1 {
			class = Tx_Formhandler_Logger_DB
		}
	}

	# Finishers configuration
	finishers {
		 1 {
			class = Tx_Formhandler_Finisher_DB
			config {
				table = tt_content
				key = uid
				fields {
					header {
						mapping = name
						if_is_empty = None given
					}
					bodytext {
						mapping = subject
						seperator = ,
					}
					hidden = 1
					pid = 39
					subheader.special = sub_datetime
					crdate.special = sub_tstamp
					tstamp.special = sub_tstamp
					imagecaption.special = ip
				}
			}
		}
		2.class = Tx_Formhandler_Finisher_Mail
		2.config {
			#limitMailsToUser = 5
			admin {
				to_email = ich@irgendwo.de
				to_name = Admin
				subject = Anfrage Formular
				sender_email = email
				sender_name = lastname
				replyto_email = email
				replyto_name = lastname
				htmlEmailAsAttachment = 0
				attachment = picture
				attachPDF.class = Tx_Formhandler_Generator_PDF
				attachPDF.exportFields = firstname,lastname,strasse,plz,ort,tel,email,hvschonmal,hvwelchemarke,befriedigt,problem,haarbehandlunghaarlaenge,haarlaengenow,marke,budget,ratenzahlung,nachricht,contact_via,pid,submission_date,ip
			}
			user {
				to_email = email
				to_name = lastname
				subject = Ihre Anfrage
				sender_email = info@irgendwo.de
				sender_name = Team
				replyto_email = info@irgendwo.de
				replyto_name = TEXT
				replyto_name.value = Team
				htmlEmailAsAttachment = 0
				attachment = picture
				attachPDF.class = Tx_Formhandler_Generator_PDF
				attachPDF.exportFields = firstname,lastname,strasse,plz,ort,tel,email,hvschonmal,hvwelchemarke,befriedigt,problem,haarbehandlunghaarlaenge,haarlaengenow,marke,budget,ratenzahlung,nachricht,contact_via,pid,submission_date,ip
		 	}
		}
		3.class = Tx_Formhandler_Finisher_Confirmation
		3.config {
			returns = 1
			pdf {
				class = Tx_Formhandler_Generator_PDF
				exportFields = anrede,firstname,lastname,strasse,plz,ort,tel,email,hvschonmal,hvwelchemarke,befriedigt,problem,haarbehandlunghaarlaenge,haarlaengenow,marke,budget,ratenzahlung,nachricht,contact_via,pid,submission_date,ip
				export2File = 1
			}
			csv {
				class = Tx_Formhandler_Generator_CSV
				exportFields = firstname,lastname,strasse,plz,ort,tel,email,haarlaenge,submission_date
			}
		4.class = Tx_Formhandler_Finisher_Redirect
		4.config {
			redirectPage = 97
			}
		}
	}
}
gmf ·

Ich bin mir nicht sicher, ob das die Wurzel des Übels ist, aber "Generator_PDF" bzw. "Generator_CSV" existieren nicht mehr und wurden ersetzt durch "Generator_WebkitPdf" und "Generator_TcPdf" bzw. "Generator_Csv".

Ein Beispiel für Generator_WebkitPdf und Generator_Csv in Verbindung mit dem Finisher_Confirmation ist im Manual zu finden unter "Generators". Die Verwendung der Klassen im Finisher_Mail ist analog dazu.

Galaxist ·

Super!! Genau, das war's!
Habe die PDF-Funktion erst mal ausgebaut.
Aber leider gings nur Vorerst!
Wenn ich jetzt auch noch ein Bild mit hochlade, sendet er wieder keine Mails mehr.
Das Beispielscript habe ich mit meinem verglichen. Kann da keinen Unterschied erkennen.

Woran kann das noch liegen?

gmf ·

Hast du im TypoScript einen Upload-Ordner angegeben?
Wenn ja, existiert dieser Ordner und ist Schreibzugriff erlaubt?

gmf ·

Habe erst jetzt gesehen, dass ein Ordner angegeben ist.
Bleibt also nur noch die Frage, ob der Ordner denn auch existiert.

chrisk ·

Servus,

habe ähnliches Problem. Bin gerade ein wenig am "testen" mit dem, für mich neuen, Formhandler.

Leider werden bei mir ebenfalls keine Mails verschickt.

Die Redirect-Seite möchte auch noch nicht so wirklich funktionieren.
Nachdem Versenden verschwindet das Formular ansonsten passiert nichts.

Der Code ist aus dem Beispiel-TS übernommen und ein wenig bearbeitet.
Typo3: 4.3.1
Formhandler 0.9.6

Jemand eine Idee was ich falsch mache/gemacht habe?
Danke vorab!!

grüße
chris

plugin.Tx_Formhandler.settings.predef.lebenslauf {

    # Common configuration
    name = Lebenslauf
    debug = 0
    addErrorAnchors = 1
    templateFile = fileadmin/templates/lebenslauf-form.html
    langFile.1 = fileadmin/templates/lang/contact-form-lang.xml
    stylesheetFile = fileadmin/templates/inc/contact-form.css
    formValuesPrefix = formhandler

    # HTML wrapping by validation error
    errorListTemplate {
        totalWrap = <ul>|</ul>
        singleWrap = <li class="error">|</li>
    }
    singleErrorTemplate {
        singleWrap = <span class="error">|</span><br />
    }

    # File configuration
    singleFileMarkerTemplate {
        totalWrap = <ul>|</ul>
        singleWrap = <li style="color:maroon;">|</li>
    }
    totalFilesMarkerTemplate {
        totalWrap = <ul>|</ul>
        singleWrap = <li style="color:red;">|</li>
    }
    files {
        clearTempFilesOlderThanHours = 24
        uploadFolder = uploads/formhandler/tmp2/
        enableAjaxFileRemoval = 1
    }

    # Validators configuration
    validators {
        1 {
            class = Tx_Formhandler_Validator_Default
            config {
                fieldConf {
                    lebenslauf {
                        errorCheck.1 = fileAllowedTypes
                        errorCheck.1.allowedTypes = pdf
                        #errorCheck.2 = fileMinSize
                        #errorCheck.2.minSize = 20000
                        errorCheck.3 = fileMaxSize
                        errorCheck.3.maxSize= 100000
                        errorCheck.4 = fileMaxCount
                        errorCheck.4.maxCount = 1
                    }
                    vorname {
                        errorCheck.1 = required
                        errorCheck.2 = maxLength
                        errorCheck.2.value = 50
                    }
                    nachname {
                        errorCheck.1 = required
                        errorCheck.2 = maxLength
                        errorCheck.2.value = 50
                    }
                    standort {
                        errorCheck.1 = required
                    }
                    spezi {
                        errorCheck.1 = required
                    }
                    email {
                        errorCheck.1 = required
                        errorCheck.2 = email
                }
            }
        }
    }

    # Interceptors configuration
    initInterceptors {
        1 {
            class = Tx_Formhandler_Interceptor_Filtreatment
        }
    }

    # Loggers configuration
    loggers {
        1 {
            class = Tx_Formhandler_Logger_DB
        }
    }

    # Finishers configuration
    finishers {
         1 {
            class = Tx_Formhandler_Finisher_DB
            config {
                table = tt_content
                key = uid
                fields {
                    header {
                        mapping = name
                        if_is_empty = None given
                    }
                    bodytext {
                        mapping = subject
                        seperator = ,
                    }
                    hidden = 1
                    pid = 5
                    subheader.special = sub_datetime
                    crdate.special = sub_tstamp
                    tstamp.special = sub_tstamp
                    imagecaption.special = ip
                }
            }
        }
        2.class = Tx_Formhandler_Finisher_Mail
        2.config {
            limitMailsToUser = 5
            admin {
                to_email = xxxx@xxx.de
                to_name = xxxxxx
                subject = Lebenslauf eingetroffen
                sender_email = email
                sender_name = nachname
                replyto_email = email
                replyto_name = nachname
                htmlEmailAsAttachment = 1
                attachment = lebenslauf
            }  
        }
        3.class = Tx_Formhandler_Finisher_Confirmation
        3.config {
            returns = 1
            actions {
                pdf {
                    class = Generator_WebkitPdf
                    config {
                        pid = 5
                      }    
                }
                csv {
                    class = Generator_Csv        
                }
            }
        }
      
        4.class = Tx_Formhandler_Finisher_Redirect
        4.config {
                 redirectPage = 11
        }
    }
}
gmf ·

Zumindest die Probleme mit dem Redirect kann ich dir erklären.

Vor dem Redirect wird bei dir Finisher_Confirmation aufgerufen. Dieser zeigt den Inhalt des Subparts ###TEMPLATE_CONFIRMATION### im HTML-Template an.
Danach wird kein Finisher mehr aufgerufen, weil dieser Finisher als Endpunkt gedacht ist.

Also kannst du entweder Finisher_Redirect oder Finisher_Confirmation einsetzen.

chrisk ·

Okay werde ich gleich mal umbauen. Klingt soweit logisch!
Danke Dir!!!!!

Leider möchten aber immernoch keine E-Mail eintreffen.

Habe jetz testweise ein normales Formular (2-3 textfeleder + submit-button) über den Datensatz "formhandler" eingerichtet und konfiguriert (ohne ext-template und eigenem TS) und dort funktioniert alles.

chrisk ·

Ich habe mal die DEBUG-Ausgabe beigefügt.

Er ruft Finisher_Mail gar nicht auf... ich muss mir den Code wohl nochmals genauer ansehen...

Initiale Werte
Aktueller Step: 2
Höchster Subparts im Template (Anzahl der Steps): 1
Verwende Prefix für Formularwerte: "formhandler"
Verwende View "Tx_Formhandler_View_Form"
Die aktuellen GET/POST-Parameter:
submitted 	1
vorname 	ffsdafd
nachname 	fsdfsdf
email 	xxxxx@xxxxx.de
spezi 	sdfsdf
standort 	sadfsd
vertrag 	fgj
gehalt 	sdfsdf
bemerkung 	sdfsdfsdfsdf
step-2 	Absenden

Die aktuellen Werte in der Session:
EMPTY!

Rufe Klasse "Tx_Formhandler_Interceptor_Filtreatment" auf!
Rufe Validator "Tx_Formhandler_Validator_Default" auf!
Rufe Klasse "Tx_Formhandler_ErrorCheck_FileAllowedTypes" auf!
Rufe Klasse "Tx_Formhandler_ErrorCheck_FileMaxSize" auf!
Rufe Klasse "Tx_Formhandler_ErrorCheck_FileMaxCount" auf!
Rufe Klasse "Tx_Formhandler_ErrorCheck_Required" auf!
Rufe Klasse "Tx_Formhandler_ErrorCheck_MaxLength" auf!
Rufe Klasse "Tx_Formhandler_ErrorCheck_Required" auf!
Rufe Klasse "Tx_Formhandler_ErrorCheck_MaxLength" auf!
Rufe Klasse "Tx_Formhandler_ErrorCheck_Required" auf!
Rufe Klasse "Tx_Formhandler_ErrorCheck_Required" auf!
Rufe Klasse "Tx_Formhandler_ErrorCheck_Required" auf!
Rufe Klasse "Tx_Formhandler_ErrorCheck_Email" auf!
Aktuell hochgeladene Dateien:
lebenslauf 	
0 	
name 	test.pdf
uploaded_name 	test_7.pdf
uploaded_path 	/www/htdocs/w00c437b/typo3/uploads/formhandler/tmp2/
uploaded_folder 	/uploads/formhandler/tmp2/
uploaded_url 	http:/xxxxxx.eu.dd19720.kasserver.com/typo3/uploads/formhandler/tmp2/test_7.pdf
size 	12156
type 	application/pdf

Formular ist beendet!
Speichere GP in Session!
Rufe Klasse "Tx_Formhandler_Logger_DB" auf!
Logge in Tabelle "tx_formhandler_log" folgende Werte: 217.95.229.40,1265120570,1265120570,5,a:10:{s:9:"bemerkung";s:12:"sdfsdfsdfsdf";s:5:"email";s:14:"xxxxx@xxxxx.de";s:6:"gehalt";s:6:"sdfsdf";s:8:"nachname";s:7:"fsdfsdf";s:5:"spezi";s:6:"sdfsdf";s:8:"standort";s:6:"sadfsd";s:6:"step-2";s:8:"Absenden";s:9:"submitted";s:1:"1";s:7:"vertrag";s:3:"fgj";s:7:"vorname";s:7:"ffsdafd";},b9899d5b1a12c77dd54f323423b0cdb7!
gmf ·

Bei genauerer Betrachtung deines TypoScript kommt es mir vor als ob für finishers.3.config die schließende Klammer fehlt.

chrisk ·
gmf schrieb

Bei genauerer Betrachtung deines TypoScript kommt es mir vor als ob für finishers.3.config die schließende Klammer fehlt.

Ganz genau!!! Das wars! Irgendwann sieht man eben vor lauter Bäumen den Wald nicht mehr.

Bis jetzt funktioniert alles soweit wunderbar!!!

Bye Bye Mailformplus ;-)