Levélküldés, paraméterezve.

Sziasztok!



Egy programot írtam, ami egy paraméterezett levelet küldene ki, így néz ki a dolog, ami nem működik (lebutítva, egy-két változóval):

<?php<br />
add_option('subject','foobar')<br />
add_option( 'message', '<br />
<h2>Kedves %1$s!</h2><br />
<p>%2$s</p>');<br />
<br />
function level_parameterezve($to, $nev, $uzenet) {<br />
$message = sprintf(get_option('message'),$nev,$uzenet);<br />
$subject = get_option('subject');<br />
$headers = "MIME-Version: 1.0n" .<br />
"From: Foobar <noreply@foobar.hu>n" .<br />
"Content-Type: text/html; charset="" .<br />
get_option('blog_charset') . ""n";<br />
wp_mail( $to, $subject, $message, $headers);<br />
}<br />
<br />
$nev = 'János';<br />
$uzenet = 'Szevasz. barátom!';<br />
<br />
level_parameterezve('janos@foobar.hu', $nev, $uzenet);<br />
?>
```<br />
<br />
Valaki tudna segíteni, hogy mi a hiba?

Elég rosszul néz ki a kód, már csak azt alapul véve, hogy címzett egy komplett JavaScript kód :slight_smile:



De a fejlécben is elég szörnyen fest a JS kód… :frowning:



Az biztosan kell oda? Mit szeretnél vele elérni?

Ó, dehogyis kell, csak ez az inkompetens code higlighter… így néz ki jól:



<?php

add_option('subject','foobar')

add_option( 'message', '

Kedves %1$s!


%2$s');

function level_parameterezve($to, $nev, $uzenet) {
$message = sprintf(get_option('message'),$nev,$uzenet);
$subject = get_option('subject');
$headers = "MIME-Version: 1.0n" .
"From: Foobar n" .
"Content-Type: text/html; charset="" .
get_option('blog_charset') . ""n";
wp_mail( $to, $subject, $message, $headers);
}

$nev = 'János';
$uzenet = 'Szevasz. barátom!';

level_parameterezve('janos@foobar.hu', $nev, $uzenet);
?>

És az a lényege, hogy egy adatbázisból kiolvasott (és szerkeszthető) emailt küld ki, program által generált paraméterekkel.

Próbáld meg debugolni a kód egyes részeit:


  • Kiíratni, hogy az egyes változókban tényleg bent van-e az az érték aminek kellene
  • Hogy a wp_mail() milyen értékkel tár vissza
  • Önmagában a wp_mail(); függvény paramétereit kitöltve müködik-e a levél küldés
  • Egyszerű PHP mail(); függvénnyel működik-e a levél küldés
  • Lehet a servered nem alkalmas levél küldésre, vagy csak rosszul van konfigurálva. Ha létrehozol egy új felhasználót (létező email címmel), akkor a WP értesítési levele megérkezik rá?

Köszönöm szépen a tippeket, amatőr hiba volt: a változók scope-ját nem vettem figyelembe, hiszen a $nev és az $uzenet global, a függvényen belül pedig local a var. Amúgy a kód működik. Tanulság: nem szabad nagyon fáradtan kódolni. :wink:

Hát ha csak nem valami atom brutál speckó dologhoz szertnéd használni a mail-t akkor szerintem 1-2 sörre meghívhatod magad ha plugint használsz. Én a contact form 7-et használom ahol csak lehet és sosem volt panasz. Amitől fostam anno az volt hogy esetleg rommá szemetelik az e-mail címeket, de az akismet is jó dolog + a plugin sem annyira átverhető és captchaval is rendelkezik, szóval elég hasznos jószág.