mail() - Absender wird nicht übernommen

Maniac_81
ich bekomme beim absenden meines newsletters folgende fehlermelddung in den Absender geschrieben:

Absender Marcus@.MISSING-HOST-NAME., UNEXPECTED_DATA_AFTER_ADDRESS@.SYNTAX-ERROR.

in einem normalen kontaktformular funktioniert es komischerweise, dort wird beim absender alles richtig angezeigt.

das hier ist der code dazu:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
$adminmail mysql_query("SELECT email FROM allgemein WHERE ID='1'") or die(mysql_error());
    if ($z mysql_num_rows($adminmail) > 0) {
     while ($result mysql_fetch_array($adminmail)) {
             $ademail $result['email'];
            }
        }

if (isset($_POST['send']))
    {
        $autor htmlspecialchars($_POST['autor']);
        $subjekt htmlspecialchars($_POST['subjekt']);
        $text $_POST['newsletterText'];
        
        if (!$autor || !$subjekt || !$text// überprüfung ob alles ausgefüllt
        {
            echo "<span style=\"color:#ff0000; font-size:16px;\">Sie haben nicht alle Felder ausgef&uuml;llt!</span><br />";
        }
        else 
        {
        // Wenn einzelne liga ausgewählt
        if ($_POST['ligen'] != "all")
        {
            $senden mysql_query("SELECT email FROM teams WHERE liga_id=".$_POST['ligen']."") or die(mysql_error());
            if ($p mysql_num_rows($senden) > 0) {
                while (list($email)=mysql_fetch_row($senden)) {
                    $mailer mail($emailutf8_decode($subjekt), utf8_decode($text), "FROM: ".$autor." <".$ademail.">"); // mail an alle
                    
                }
                if (!$mailer)
                    {
                        echo "Newsletter konnte nicht versendet werden!<br />
                        Bitte versuchen Sie es nocheinmal"; 
                    }
                    else
                    {
                        echo "Newsletter erfolgreich versendet!";
                    }
            }
            
        }
C-Board
Ist schwer nachzuvollziehen, wenn ich nicht weiß, mit welchen Inhalten die Variablen gefüllt sind.

Sieht so aus, als ob die Syntax für eine E-Mail-Addy falsch ist.

Gruß Mike
Maniac_81
ich glaube ich habe es schon selbst rausgefunden. lag wohl an:

"FROM: ".$autor." <".$ademail.">");

die <> hat er nicht genommen.
laut php-manual sollte es aber gehn:

$header .= 'From: Geburtstags-Erinnerungen <geburtstag@example.com>' . "\r\n";

dort wird die absender-adresse ja auch in <> geschrieben.
C-Board
Dann ändere mal die Zeile:
php:
1:
$mailer mail($emailutf8_decode($subjekt), utf8_decode($text), "FROM: ".$autor." <".$ademail.">"); // mail an alle


in
php:
1:
$mailer mail($emailutf8_decode($subjekt), utf8_decode($text), "FROM: ".$autor." &lt;".$ademail."&gt;"); // mail an alle


Das klappt im Test. Ansonsten ginge es nur, wenn nach der öffnden Klammer < ein Leerzeichen ist und vor der schliessenden ebenfalls.

Gruß Mike
Maniac_81
oh mann, danke. da hätte ich ja auch selbst drauf kommen können.....
[kamui]
Eben getestet, bei mir funktioniert es auch mit < und > - liegt es am Server?
C-Board
An den Zeichensätzen, vermute ich mal. Denn auch bei mir war Ebbe im Schacht verwirrt

Gruß Mike
Agi
Kommt wahrscheinlich darauf an, welche Distribution usw. man benutzt und welcher Zeichensatz vom Server standardmäßig benutzt wird.
Maniac_81
reicht eigentlich die absicherung der eingabefelder durch "htemlspechialchars()"?