Sziasztok!
Adott egy űrlap (Webform), aminek a Haladó beállításainál (Advanced Settings) használtam az Additional Processing mezőt, a kitöltőknek egy válaszlevél küldésére.
Azért volt erre szükség, mert a válaszlevélben számított értékek szerepelnek.
Eddig Drupal 5-ös rendszer alatt szépen ment is minden a drupal_mail függvénnyel, de Drupal 6 alatt annyira megváltozott a drupal_mail függvény, hogy sehogyan sem tudom beilleszteni az üzenetet a függvénybe. A neten kerestem mindenféle leírást, de számomra egy sem volt átlátható.
$message['body'][] = $uzenet; $message['headers']['MIME-Version'] = '1.0'; $message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed'; $message['headers']['Content-Transfer-Encoding'] = '8Bit'; $message['headers']['X-Mailer'] = 'Drupal'; $message['subject'] = $targy; $params['message'] = $message; $language->language; drupal_mail($module, $key, $to, $language, $params = array(), $from = NULL, $send = TRUE); ?>
Próbáltam így is beletenni, de így sem sikerült:
$headers = array( 'MIME-Version' => '1.0', 'Content-Type' => 'text/html; charset=UTF-8; format=flowed', 'Content-Transfer-Encoding' => '8Bit', 'X-Mailer' => 'Drupal' ); $params['body'] = $uzenet; $params['subject'] = $targy; $params['headers'] = $headers; $language->language; drupal_mail($module, $key, $to, $language, $params = array(), $from = NULL, $send = TRUE);
Az email megjön, tehát a függvény működik és a $to változót értelmezi is, de nincs tárgya az emailnek és teljesen üres.
Hogyan kell helyesen beilleszteni a változókat? (A Drupa 5-ben a $body sokkal egyszerűbb volt).
Köszönöm.
drupal_mail: $params és $message['body'][]
Nos sikerült kiszenvedni magamból a megoldást.
Mivel használom az SMTP és HTML Mail modulokat, ezért azt gyanítom, az email header-jét nem kell beállítanom, úgyhogy azt elhagytam.
A teljes üzenetet (azaz az email body részét) összeraktam egy $uzenet valtozoban - ott használtam az űrlap (webform) egyes mezőinek értékét is.
Ezután paraméterként definiáltam magát az üzenetet:
Amit később átadtam a $message['body'][] változónak a megfelelő helyen:
Figyelni kell arra, hogy kell egy függvény (function), amiben összeállítjuk magát az emailt, mert a drupal_mail() függvény keresni fogja ezt. Mégpedig úgy, hogy ha a drupal_mail() függvényben azt adtuk meg az első paraméternek ($modules) hogy 'example' akkor a függvény neve 'example_mail' kell hogy legyen.
Tehát a kód amit használok az email elküldésére:
//pakati
En biztos nem bonyolitanam ezt ennyire
Minden webform urlaphoz lehet egyedi mail body sminket csinalni, ahol megkapod az urlapon kitoltott ertekeket.
A webform meg alapbol tud kuldeni a kitoltonek levelet.
---
http://drupalaton.hu