email.txt mit personalisierter Anrede

Fragen und Tipps & Tricks zur Newsletter Software SuperMailer oder zum BirthdayMailer

Moderatoren: mirko, Wolfi

Antworten
tonkelz
Beiträge: 3
Registriert: 04.04.2010, 14:51

Beitrag von tonkelz »

MmaaaaNN!
So blind sollte man auch nicht sein.
Danke jetzt funktioniert es natürlich.

Danke!
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

Du musst bei den $_POST[] Angaben Groß-/Kleinschreibung beachten. Also steht in deinem Formular

<input>


dann musst du im Script auch angeben

$message = str_replace ("[VORNAME]", $_POST["VORNAME"], $message);
tonkelz
Beiträge: 3
Registriert: 04.04.2010, 14:51

Beitrag von tonkelz »

Hallo!
Habe das gleiche Problem mit der Anrede:
in der newsletter.php habe ich es so:

Code: Alles auswählen

 $message = str_replace ("[BESTAETIGUNGSLINK]", $Link, $message);
  $message = str_replace ("[CONFIRMATIONLINK]", $Link, $message);
  $message = str_replace ("[VORNAME]", $_POST['Vorname'], $message);

  $message = str_replace ("[NAME]", $_POST['Name'], $message);
im Formular:

Code: Alles auswählen

<form method="POST" action="newsletter.php">
 Name:<br>
<input type="text" name="NAME"><br>
Vorname:<br>
<input type="text" name="VORNAME"><br>
  <p><font face="Verdana, Arial, Helvetica" size="1">Ihre E-Mail-Adresse:<br>
  <input type="text" name="EMail" size="25"></font></p>
  <p><font face="Verdana, Arial, Helvetica" size="1">Sie möchten sich für
  unseren Newsletter</font></p>
  <p><font face="Verdana, Arial, Helvetica" size="1"><input type="radio" value="subscribe" checked name="Action">
  anmelden<br>
  <input type="radio" name="Action" value="unsubscribe"> abmelden</font></p>
  <p><input type="image" src="../shop/templates/capsicum/buttons/german/button_absenden.jpg" alt="Absenden">

</form>
in der txt-Datei:

Code: Alles auswählen

Hallo [VORNAME] [NAME]!
in der Bestätigungsmail:

Code: Alles auswählen

Hallo  !
Wo kann mein Fehler liegen?
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

bestimmt irgendein Tippfehler bei den Feldnamen, im Script oben error_reporting(0); auf error_reporting(E_ALL); ändern, damit Meldungen bei Fehlern angezeigt werden.
tonkelz
Beiträge: 3
Registriert: 04.04.2010, 14:51

Beitrag von tonkelz »

Tja ich hab ein Problem:

Habe es so übernommen in der newsletter.php
if($s != "")
$Link .= "&".$s;

$message = str_replace ("[BESTAETIGUNGSLINK]", $Link, $message);
$message = str_replace ("[CONFIRMATIONLINK]", $Link, $message);
$message = str_replace ("[VORNAME]", $_POST['Vorname'], $message);

$message = str_replace ("[NAME]", $_POST['Name'], $message);



if(!@mail($EMail, $EMailSubject, $message, $headers))
print "Can't send email.";

if ($ConfirmationMailSendOKPage != "")
header("Location: $ConfirmationMailSendOKPage");
else
print "<b>Ihnen wurde eine E-Mail an die E-Mail-Adresse $EMail mit einem Bestätigungslink zur Aufnahme in unseren Newsletter gesendet.<br>Bitte klicken Sie in dieser E-Mail auf den Bestätigungslink, damit Ihre E-Mail-Adresse in unseren Newsletter aufgenommen wird.</b>";

exit;
}
Mein html-Formular:

<Newsletteranmeldung>
<form>
Name:<br>
<input><br>
Vorname:<br>
<input><br>
<p><font>Ihre E-Mail-Adresse:<br>
<input></font></p>
<p><font>Sie möchten sich für
unseren Newsletter</font></p>
<p><font><input>
anmelden<br>
<input> abmelden</font></p>
<p><input>

</form>
<Newsletteranmeldung>


Aber meine Mail kommt dann so an:
Hallo [Vorname] [Name]!

Vielen Dank für die Anmeldung zu unserem Newsletter.
Damit Ihre E-Mail-Adresse in unserem Newsletterverteiler aufgenommen wird, bestätigen Sie
bitte nochmal Ihre Anmeldung, in dem Sie auf den folgenden Link klicken:


Was habe ich falsch gemacht?

Code: Alles auswählen

if($s != "")
    $Link .= "&".$s;

  $message = str_replace ("[BESTAETIGUNGSLINK]", $Link, $message);
  $message = str_replace ("[CONFIRMATIONLINK]", $Link, $message);
  $message = str_replace ("[VORNAME]", $_POST['Vorname'], $message);

  $message = str_replace ("[NAME]", $_POST['Name'], $message);



  if(!@mail($EMail, $EMailSubject, $message, $headers))
     print "Can't send email.";

  if ($ConfirmationMailSendOKPage != "")
    header("Location: $ConfirmationMailSendOKPage");
    else
    print "<b>Ihnen wurde eine E-Mail an die E-Mail-Adresse $EMail mit einem Bestätigungslink zur Aufnahme in unseren Newsletter gesendet.<br>Bitte klicken Sie in dieser E-Mail auf den Bestätigungslink, damit Ihre E-Mail-Adresse in unseren Newsletter aufgenommen wird.</b>";

  exit;
}

Code: Alles auswählen

if($s != "")
    $Link .= "&".$s;

  $message = str_replace ("[BESTAETIGUNGSLINK]", $Link, $message);
  $message = str_replace ("[CONFIRMATIONLINK]", $Link, $message);
  $message = str_replace ("[VORNAME]", $_POST['Vorname'], $message);

  $message = str_replace ("[NAME]", $_POST['Name'], $message);



  if(!@mail($EMail, $EMailSubject, $message, $headers))
     print "Can't send email.";

  if ($ConfirmationMailSendOKPage != "")
    header("Location: $ConfirmationMailSendOKPage");
    else
    print "<b>Ihnen wurde eine E-Mail an die E-Mail-Adresse $EMail mit einem Bestätigungslink zur Aufnahme in unseren Newsletter gesendet.<br>Bitte klicken Sie in dieser E-Mail auf den Bestätigungslink, damit Ihre E-Mail-Adresse in unseren Newsletter aufgenommen wird.</b>";

  exit;
}

Code: Alles auswählen

if($s != "")
    $Link .= "&".$s;

  $message = str_replace ("[BESTAETIGUNGSLINK]", $Link, $message);
  $message = str_replace ("[CONFIRMATIONLINK]", $Link, $message);
  $message = str_replace ("[VORNAME]", $_POST['Vorname'], $message);

  $message = str_replace ("[NAME]", $_POST['Name'], $message);



  if(!@mail($EMail, $EMailSubject, $message, $headers))
     print "Can't send email.";

  if ($ConfirmationMailSendOKPage != "")
    header("Location: $ConfirmationMailSendOKPage");
    else
    print "<b>Ihnen wurde eine E-Mail an die E-Mail-Adresse $EMail mit einem Bestätigungslink zur Aufnahme in unseren Newsletter gesendet.<br>Bitte klicken Sie in dieser E-Mail auf den Bestätigungslink, damit Ihre E-Mail-Adresse in unseren Newsletter aufgenommen wird.</b>";

  exit;
}
staubach
Beiträge: 10
Registriert: 01.08.2007, 14:12

Beitrag von staubach »

alles prima funktioniert tadellos. :i_respekt:
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

Beitrag von mirko »

weil Syntax-Fehler drin sind, ohh und den Fehler habe ich auch noch vorgemacht, muss ich gleich in dem alten Beitrag korrigieren. :)

Also

Code: Alles auswählen

if ( $_POST['Anrede'] == "Mr." )
$message = str_replace ("[ANREDE]", "Mr." $message);
else
if ( $_POST['Anrede'] == "Mrs." )
$message = str_replace ("[ANREDE]", "Mrs." $message);
ändern in

Code: Alles auswählen

if ( $_POST['Anrede'] == "Mr." )
$message = str_replace ("[ANREDE]", "Mr.", $message);
else
if ( $_POST['Anrede'] == "Mrs." )
$message = str_replace ("[ANREDE]", "Mrs.", $message);
also bei $message); fehlt überall ein Komma davor.
staubach
Beiträge: 10
Registriert: 01.08.2007, 14:12

Beitrag von staubach »

Danke für die Hilfe - irgendwo habe ich wohl noch einen Fehler. So sieht mein Code in der newsletter.php aus:

if($s != "")
$Link .= "&".$s;
$message = str_replace ("[BESTAETIGUNGSLINK]", $Link, $message);
$message = str_replace ("[CONFIRMATIONLINK]", $Link, $message);
$message = str_replace ("[VORNAME]", $_POST['Vorname'], $message);
$message = str_replace ("[NAME]", $_POST['Name'], $message);
$message = str_replace ("[ANREDE]", $_POST['Anrede'], $message);
if ( $_POST['Anrede'] == "Mr." )
$message = str_replace ("[ANREDE]", "Mr." $message);
else
if ( $_POST['Anrede'] == "Mrs." )
$message = str_replace ("[ANREDE]", "Mrs." $message);
@mail($EMail, $EMailSubject, $message, $headers);

if ($ConfirmationMailSendOKPage != "")
header("Location: $ConfirmationMailSendOKPage");
else

####################################
das ist der code meines Formulars:


<TR>
<TD><div>
<select>
<option>Mr.</option>
<option>Mrs.</option>
</select><br>
<div>Surname:<BR>
<INPUT><BR>
Last name:<BR>
<INPUT></div></TD>
<TD>
<div>I would like to...</div>
<div>
<INPUT> <FONT>subscribe</FONT><BR>
<INPUT> <FONT>unsubscribe</FONT><BR>
<INPUT> <FONT>edit my data</FONT><BR></div></TD></TR>
<TR>
<TD>
<div>eMail-address:<BR>
<INPUT></div></TD>
<TD>
<div>&nbsp;<BR>
<INPUT></div></FORM></TD></TR>

#########################
in der email.txt steht:

Dear [Anrede] [Vorname] [Name],

Thank you for subscribing to the newsletter. To confirm your registration, please verify your subscription by clicking on this link:

[BESTAETIGUNGSLINK]

When clicking on the link does not work for you

#########################
wenn man das formular benutzt, dann kommt nur eine leere weiße Seite. Entferne ich den neuen Code aus der newsletter.php dann funktioniert es wieder - allerdings ohne Anrede. Irgend etwas scheint in der php noch nicht ganz zu stimmen.
Zuletzt geändert von staubach am 21.08.2007, 14:21, insgesamt 1-mal geändert.
Benutzeravatar
mirko
Beiträge: 23082
Registriert: 25.11.2001, 15:14
Wohnort: Leipzig
Kontaktdaten:

email.txt mit personalisierter Anrede

Beitrag von mirko »

Ja doch so in der Art geht es. :)

also da wo steht

Code: Alles auswählen

  $message = str_replace ("[BESTAETIGUNGSLINK]", $Link, $message);
  $message = str_replace ("[CONFIRMATIONLINK]", $Link, $message);
darunter z.B. schreiben

Code: Alles auswählen

  $message = str_replace ("[VORNAME]", $_POST['Vorname'], $message);

  $message = str_replace ("[NAME]", $_POST['Name'], $message);

  $message = str_replace ("[ANREDE]", $_POST['Anrede'], $message);

Wichtig dabei im HTML-Formular müssen die Eingabefelder für den Vornamen auch Vorname, für den Namen Name und für Anrede natürlich Anrede heißen.

Man kann das Spielchen dann noch weiter treiben z.B. [ANREDE] mit Sehr geehrter Herr und Sehr geehrte Frau ersetzen, in dem man halt Vergleiche macht z.B. so

Code: Alles auswählen

 if ( $_POST['Anrede'] == "Herr" )
    $message = str_replace ("[ANREDE]", "Sehr geehrter Herr", $message);
 else
 if ( $_POST['Anrede'] == "Frau" )
    $message = str_replace ("[ANREDE]", "Sehr geehrte Frau", $message);
Zuletzt geändert von mirko am 19.09.2008, 15:11, insgesamt 1-mal geändert.
staubach
Beiträge: 10
Registriert: 01.08.2007, 14:12

email.txt mit personalisierter Anrede

Beitrag von staubach »

Hallo Mirko, in meiner Anmeldung frage ich auch Namen und Vornamen ab. Diese möchte ich gern auch in der email.txt für die Anrede verwenden. Dafür muss in der newsletter.php sicherlich etwas ergänzt werden. Allerdings geht es leider nicht so einfach wie unten aufgeührt...
if($s != "")
$Link .= "&".$s;
$message = str_replace ("[VORNAME]", $Link, $message);
$message = str_replace ("[NAME]", $Link, $message);
$message = str_replace ("[BESTAETIGUNGSLINK]", $Link, $message);
$message = str_replace ("[CONFIRMATIONLINK]", $Link, $message);
@mail($EMail, $EMailSubject, $message, $headers);

Ich hoffe, du kannst mir helfen. Danke
Antworten