Mailformular zeigt Fehler

Gesperrt
Simone
Beiträge: 193
Registriert: Fr 9. Sep 2005, 06:39
Kontaktdaten:

Mailformular zeigt Fehler

Beitrag 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
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag 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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Simone
Beiträge: 193
Registriert: Fr 9. Sep 2005, 06:39
Kontaktdaten:

Beitrag 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
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag 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

Code: Alles auswählen

$header='From: Simone <DeineE-Mail>\n';
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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Simone
Beiträge: 193
Registriert: Fr 9. Sep 2005, 06:39
Kontaktdaten:

Beitrag 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
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag 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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag 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 ;)
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag 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. :wink:
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag 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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Simone
Beiträge: 193
Registriert: Fr 9. Sep 2005, 06:39
Kontaktdaten:

Beitrag von Simone »

Klingt schwer danach als möchte Simone ein 'tell-a-friend' umsetzen.
Nee, die Leute wissen doch nicht, wie die Mailadressen sind. :roll:

Also, das ist ein Modul, was man schlicht "Kontaktformular" :lol: 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>';
}
?>
Gesperrt