Hi,
vlt. hat mir jmd zu folgendem Problem ein kleinen Denkanstoss.
Und zwar möchte ich ein eigenens Kontaktformular in meine Website integrieren.
Gemacht folgendermaßen:
Über Flexforms kann ich ne Empfängermail eingeben. Die restlichen Elemente habe ich direkt im Fluid Template angelegt (Input, Textarea, usw.)
Ich stehe jetzt vor dem Problem, wie ich mit dem Versand dieser Email weitermache....
Jemand ein Tipp wie und wo ich nachdem absenden weiter machen muss?!?
Wie bekomme ich die eingebenen Inhalte aus dem Fluid Template?
lg
Kevin
PS: Früher hätte man das doch so oder so ähnlich gemacht oder?
$this->Mail = t3lib_div::makeInstance('t3lib_htmlmail');
$this->Mail->start();
$this->Mail->recipient = $this->lConf['glcm016_email'];
$mailtext .= "Folgende Anfrage ist am ".date('d.m.Y',time())." um ".date('H:i',time())." Uhr eingegangen:\n\n";
$mailtext .= "Name: ".t3lib_div::_GP('name')."\n";
$mailtext .= "Email: ".t3lib_div::_GP('email')."\n";
$mailtext .= "Telefon: ".t3lib_div::_GP('phone')."\n\n";
$mailtext .= "Betreff: ".t3lib_div::_GP('subject')."\n";
$mailtext .= "Mitteilung: ".t3lib_div::_GP('message')."\n";
$this->Mail->from_email = t3lib_div::_GP('email');
$this->Mail->from_name = t3lib_div::_GP('vname').' '.t3lib_div::_GP('nname');
$this->Mail->returnPath = 'norespond@solon.de';
$this->Mail->setPlain($mailtext);
$result = $this->Mail->send($this->lConf['cm005_email']);
Controller:
class Tx_MyExtension_Controller_IndexController extends Tx_Extbase_MVC_Controller_ActionController {
/**
* @var array
*/
private $param = array();
/**
* @var string
*/
private $extKey = 'tx_my_extension';
/**
* Initialisierung
*
* @return void
*/
public function initializeAction() {
$this->param = t3lib_div::GPvar($this->extKey);
}
/**
* Gibt die uebergebenen $_POST | $_GET Parameter an die View und
* leitet an die SubmitAction weiter (falls alle noetigen Daten vorhanden sind)
*
* @return void
*/
public function indexAction() {
// E-Mail auf Gueltigkeit (nur Syntax) pruefen
if($this->validEmail($this->param['index']['email'])) {
$mail = new Zend_Mail('utf-8');
....
$mail->send();
$this->redirect('submit');
}
$this->view->assign('param', $this->param);
}
/**
* E-Mail auf Gueltigkeit (nur Syntax) pruefen
*
* @param string
* @return boolean true wenn E-Mail ok
*/
private function validEmail($email) {
$tld = '(com|edu|gov|int|mil|net|org|biz|info|name|museum|coop|aero|[a-z][a-z])';
$patter ='/\w[-.\w]*\@[-a-z0-9]+(\.[-a-z0-9]+)*\.'.$tld.'$/i';
return preg_match($patter, $email);
}
}
Template:
<f:form controller="Index" action="index" method="post" enctype="multipart/form-data" >
<f:form.textbox size="10" class="textbox" name="index[email]" value="{param.index.email}" />
<f:form.submit name="inquiry_submit" value="Senden" />
</f:form>
Erklärung:
Im FE wird eine E-Mail eingegeben und nach dem senden der Controller aufgerufen. Dort wird in der index-Methode geprüft ob der die E-Mail valide ist, falls ja wird versendet und an eine andere Seite weitergeleitet. Falls die Mail nicht in ordung ist, muß der User seine Eingabe verbesser.
Hier wird mit Zend_Mail statt mit t3lib_htmlmail gearbeitet, sollte aber irrelevant sein.
Viel Erfolg