Seite 1 von 1
Mailformular zeigt Fehler
Verfasst: So 30. Okt 2005, 16:34
von Simone
Hallo an alle,
ich habe das unter
http://contenido.org/forum/viewtopic.ph ... ilformular angebene Mailformularmodul in meiner Website verwendet.
Hat jemand von Euch auch das Problem, daß die Mails, die ankommen, in der Zeile
Von: Name <
maildrese@adresse.de>, servername
haben? Der Servername ist nervend, weil man die Mails nicht sofort beantworten kann, sondern die Angaben , servername streichen muß.
Hier ein Ausschnitt aus dem Quellcode-OUTPUT.
Code: Alles auswählen
<?php
$email_to_name = explode(",","CMS_VALUE[8]");
$email_to_mail = explode(",","CMS_VALUE[9]");
if($mail == 1 && count($email_to)!==0)
{
$header='From:'.$email_from_name.'<'.$email_from_mail.'>\n';
for($x=0;$x<count($email_to_name);$x++){
if(in_array($x,$email_to)) {
$mailto .= $email_to_name[$x]." <".$email_to_mail[$x].">,";
$adressat .= $email_to_name[$x]." ";
}
}
mail("$mailto",$betreff,$kommentar,$header);
echo '<p>Folgende Nachricht wurde versendet:</p>
<table border="1" cellpadding="3" cellspacing="0" width="100%">
<tr>
<td><p>Absender:</p></td>
<td width="90%" class="text">';
if ($email_from_mail=="") { echo '<i>keine Absenderangabe</i>'; }
else { echo $email_from_name.' &l'.'t;'.$email_from_mail.'&g'.'t;'; }
echo '</td>
</tr>
Meine Quellcode-Kenntnisse sind nicht soweit gediegen, daß ich weiß, aber könnte es sein, daß dieses \n am Ende nicht okay ist?
$header='From:'.$email_from_name.'<'.$email_from_mail.'>
\n';
Gruß Simone
Verfasst: So 30. Okt 2005, 16:42
von HerrB
Wie werden denn $email_from_name und $email_from_mail definiert (wo kommen die her)?
Das \n bedeutet nur Zeilenabsatz, das sollte es nicht sein.
Gruß
HerrB
Verfasst: So 30. Okt 2005, 16:54
von Simone
Hallo HerrB, schön daß Du mir sofort anwortest.
Ich gebe im INPUT die Adressen vor.
Code: Alles auswählen
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
<tr>
<td>Adressaten-Namen:</td>
<td><input type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\" size=70></td>
</tr>
<tr>
<td>Adressaten-Emails:</td>
<td><input type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\" size=70></td>
</tr>
<tr>
<td colspan=2>Notieren Sie in den beiden Eingabefeldern eine gleiche Anzahl von Adressaten und Email-Adressen;
trennen Sie die Einträge jeweils mit Kommata.</td>
</tr>
</table>";
IM OUTPUT wird das Formular generiert:
Code: Alles auswählen
<?php
$email_to_name = explode(",","CMS_VALUE[8]");
$email_to_mail = explode(",","CMS_VALUE[9]");
if($mail == 1 && count($email_to)!==0)
{
$header='From:'.$email_from_name.'<'.$email_from_mail.'>\n';
for($x=0;$x<count($email_to_name);$x++){
if(in_array($x,$email_to)) {
$mailto .= $email_to_name[$x]." <".$email_to_mail[$x].">,";
$adressat .= $email_to_name[$x]." ";
}
}
mail("$mailto",$betreff,$kommentar,$header);
echo '<p>Folgende Nachricht wurde versendet:</p>
<table border="1" cellpadding="3" cellspacing="0" width="100%">
<tr>
<td><p>Absender:</p></td>
<td width="90%" class="text">';
if ($email_from_mail=="") { echo '<i>keine Absenderangabe</i>'; }
else { echo $email_from_name.' &l'.'t;'.$email_from_mail.'&g'.'t;'; }
echo '</td>
</tr>
<tr>
<td class="text">Adressat(en):</td>
<td width="90%" class="text">'.$adressat.'</td>
</tr>
<tr>
<td class="text">Betreff:</td>
<td width="90%" class="text">'.$betreff.'</td>
</tr>
<tr>
<td colspan="2" class="text">'.nl2br($kommentar).'</td>
</tr>
</table>';
} else
{
echo '<form name="mail" action="'.$auth->url().'" method="post">
<table border="0" cellpadding="0" cellspacing="0" width="378">
<tr>
<td><img border="0" src="images/trans.gif" width="2" height="8"></td>
</tr>
<tr>
<td><span class="text">Ihr Name:</span></td>
<td> </td>
<td><input type="text" name="email_from_name" size="30" value="'.$email_from_name.'" class="Input"></td>
</tr>
<tr>
<td><img border="0" src="images/trans.gif" width="2" height="8"></td>
</tr>
<tr>
<td><span class="text">Ihre Email:</span></td>
<td> </td>
<td><input type="text" name="email_from_mail" size="30" value="'.$email_from_mail.'" class="Input"></td>
</tr>
<tr>
<td><img border="0" src="images/trans.gif" width="2" height="8"></td>
</tr>
<tr>
<td valign="top"><span class="text">Adressat:</span></td>
<td> </td>
<td><select name="email_to[]" size="'.count($email_to_name).'" multiple class="Input">';
for($x=0;$x<count($email_to_name);$x++){
echo '<option value="'.$x.'">'.$email_to_name[$x].'</option>';
}
echo ' </select>';
if ($mail == 1) {
echo '<br><i>Sie müssen mindestens einen Adressaten auswählen, um die Nachricht abschicken zu können.</i>'; }
echo ' </td>
</tr>
<tr>
<td><img border="0" src="images/trans.gif" width="2" height="8"></td>
</tr>
<tr>
<td><span class="text">Betreff:</span></td>
<td> </td>
<td><input type="text" name="betreff" size="30" value="'.$betreff.'" class="Input"></td>
</tr>
<tr>
<td><img border="0" src="images/trans.gif" width="2" height="8"></td>
</tr>
<tr>
<td valign="top"><span class="text">Ihre Nachricht:</span></td>
<td> </td>
<td><textarea cols="35" rows="10" name="kommentar" style="width:200px" class="InputArea">'.$kommentar.'</text'.'area></td>
</tr>
<tr>
<td><img border="0" src="images/trans.gif" width="2" height="8"></td>
</tr>
<tr>
<td colspan="3" align="center"><input type="submit" value="Mail senden" name="submit" class="InputButton"></td>
<input type="hidden" name="mail" value="1">
</tr>
</table>
</fo'; echo 'rm>';
}
?>
Ich erhalte die Mail mit
Von: Simone Nachname <
name@anbieter.de>,
n@sZahl.namen-server.de
An: Systemadministrator <
Simone.nachname@ratemal-t-online.de>
,
n@sZahl.namen-server.de verhindert, daß ich die Mail sofort beantworten kann. ich kann baer nicht entdecken, wieso der Server eingespielt wird.
Simone
Verfasst: So 30. Okt 2005, 17:03
von HerrB
Mmh, sowas dachte ich mir. Du gibst sie nicht an, vermutlich liefert die Contenido.
Bitte kommentiere
Code: Alles auswählen
$header='From:'.$email_from_name.'<'.$email_from_mail.'>\n';
mal aus und ergänze darunter
und ersetze DeineE-Mail durch eben Deine E-Mail-Adresse, die <> müssen erhalten bleiben, e.g. $header='From: Simone <
simone@wasweissich.de>\n';
Im Ganzen:
Code: Alles auswählen
// $header='From:'.$email_from_name.'<'.$email_from_mail.'>\n';
$header='From: Simone <DeineE-Mail>\n';
Leider muss ich jetzt los, aber Du kannst es ja mal ausprobieren, wie dann der Absender aussieht.
Gruß
HerrB
Verfasst: So 30. Okt 2005, 17:19
von Simone
Sorry, ich vergaß zu erwähnen, daß es ein Formular ist, wo andere an andere etwas schreiben können. Also kommen da immer fremde Absender rein.
Ich hatte meine Namen nur als Beispiel genommen. Wir haben ca. 50 Empfänger.
Viel Spaß bei dem was Du vorhast
Simone
Verfasst: So 30. Okt 2005, 17:26
von HerrB
Ja, vielleicht 50 Empfänger. Aber den Absender gibt es zunächst nur einmal... Und darum geht es. Probiere es einfach mal aus.
Gruß
HerrB
Verfasst: So 30. Okt 2005, 17:37
von mvf
Simone hat geschrieben:... Formular ist, wo andere an andere etwas schreiben können. Also kommen da immer fremde Absender rein. ...
Klingt schwer danach als möchte Simone ein 'tell-a-friend' umsetzen.
Also ich kann auf deiner Webste mich als Absender eintragen und das an 3 Freunde senden???
In deinem Input gibst du zunächst mal nur 2 Felder an
Adressaten[=Empfänger] Name
Adressaten[=Empfänger] Mail
Der Absender fehlt noch ebenso das 'processing im output'.
Just my2cents

Verfasst: So 30. Okt 2005, 17:38
von Halchteranerin
mvf hat geschrieben:Klingt schwer danach als möchte Simone ein 'tell-a-friend' umsetzen.
Das gibt's schon als fertiges Modul, dafuer braucht man das nicht.

Verfasst: So 30. Okt 2005, 17:42
von HerrB
Und gerade sehe ich, dass es aus dem Formular kommt... Meine Vorschläge streichen. mmmh. So richtig habe ich jetzt keine Idee mehr.
Gruß
HerrB
Verfasst: Mo 31. Okt 2005, 06:02
von Simone
Klingt schwer danach als möchte Simone ein 'tell-a-friend' umsetzen.
Nee, die Leute wissen doch nicht, wie die Mailadressen sind.
Also, das ist ein Modul, was man schlicht "Kontaktformular"

bezeichnet und in dem Fall in der Lage ist, mehrere Kontaktpersonen anzuklicken.
Nun kuckte ich nach einem anderen schnöden Kontaktformular, stieß dabei auch auf
http://contenido.org/forum/viewtopic.php?t=3149. Offensichtlich gab es das Problem aber auch in diesem Fall.
Und was sehe ich, HerrB? ermergence schreibt in dem Thread einen Hinweis, der bei mir ein "aha, das wirds wohl sein" zutage förderte :
mal ganz auf die schnelle:
Code:
$header='From:'.$email_from_name.'<'.$email_from_mail.'>\n';
ersetzen durch
Code:
$header='From:'.$email_from_name.'<'.$email_from_mail.'>'."\n";
sollte gehen...
Nun änderte auch ich das n bei mir und nun flutscht es.
Okay, weil ich oben den falschen Quellcode genannt habe, anbei noch einmal der richtige Code
INPUT siehe oben und der war auch nicht falsch.
OUTPUT
Code: Alles auswählen
<?php
$email_to_name = explode(",","CMS_VALUE[8]");
$email_to_mail = explode(",","CMS_VALUE[9]");
if($mail == 1 && count($email_to)!==0)
{
$header='From:'.$email_from_name.'<'.$email_from_mail.'>'."\n";
for($x=0;$x<count($email_to_name);$x++){
if(in_array($x,$email_to)) {
$mailto .= $email_to_name[$x]." <".$email_to_mail[$x].">,";
$adressat .= $email_to_name[$x]." ";
}
}
mail("$mailto",$betreff,$kommentar,$header);
echo '<p>Folgende Nachricht wurde versendet:</p>
<table border="1" cellpadding="3" cellspacing="0" width="100%">
<tr>
<td><p>Absender:</p></td>
<td width="90%" class="text">';
if ($email_from_mail=="") { echo '<i>keine Absenderangabe</i>'; }
else { echo $email_from_name.' &l'.'t;'.$email_from_mail.'&g'.'t;'; }
echo '</td>
</tr>
<tr>
<td class="text">Adressat(en):</td>
<td width="90%" class="text">'.$adressat.'</td>
</tr>
<tr>
<td class="text">Betreff:</td>
<td width="90%" class="text">'.$betreff.'</td>
</tr>
<tr>
<td colspan="2" class="text">'.nl2br($kommentar).'</td>
</tr>
</table>';
} else
{
echo '<form name="mail" action="'.$auth->url().'" method="post">
<table border="0" cellpadding="0" cellspacing="0" width="378">
<tr>
<td><img border="0" src="images/trans.gif" width="2" height="8"></td>
</tr>
<tr>
<td><span class="text">Ihr Name:</span></td>
<td> </td>
<td><input type="text" name="email_from_name" size="30" value="'.$email_from_name.'" class="Input"></td>
</tr>
<tr>
<td><img border="0" src="images/trans.gif" width="2" height="8"></td>
</tr>
<tr>
<td><span class="text">Ihre Email:</span></td>
<td> </td>
<td><input type="text" name="email_from_mail" size="30" value="'.$email_from_mail.'" class="Input"></td>
</tr>
<tr>
<td><img border="0" src="images/trans.gif" width="2" height="8"></td>
</tr>
<tr>
<td valign="top"><span class="text">Adressat:</span></td>
<td> </td>
<td><select name="email_to[]" size="'.count($email_to_name).'" multiple class="Input">';
for($x=0;$x<count($email_to_name);$x++){
echo '<option value="'.$x.'">'.$email_to_name[$x].'</option>';
}
echo ' </select>';
if ($mail == 1) {
echo '<br><i>Sie müssen mindestens einen Adressaten auswählen, um die Nachricht abschicken zu können.</i>'; }
echo ' </td>
</tr>
<tr>
<td><img border="0" src="images/trans.gif" width="2" height="8"></td>
</tr>
<tr>
<td><span class="text">Betreff:</span></td>
<td> </td>
<td><input type="text" name="betreff" size="30" value="'.$betreff.'" class="Input"></td>
</tr>
<tr>
<td><img border="0" src="images/trans.gif" width="2" height="8"></td>
</tr>
<tr>
<td valign="top"><span class="text">Ihre Nachricht:</span></td>
<td> </td>
<td><textarea cols="35" rows="10" name="kommentar" style="width:200px" class="InputArea">'.$kommentar.'</text'.'area></td>
</tr>
<tr>
<td><img border="0" src="images/trans.gif" width="2" height="8"></td>
</tr>
<tr>
<td colspan="3" align="center"><input type="submit" value="Mail senden" name="submit" class="InputButton"></td>
<input type="hidden" name="mail" value="1">
</tr>
</table>
</fo'; echo 'rm>';
}
?>