[php] mail() raar...

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil naar iemand die zich inschrijft op een nieuwsbrief een bevestigings email versturen, dit gaat opzich prima alleen doet hij iets geks.

Ik heb een html opmaak in een variabele gestopt en verstuur die via de mail functie. Wat gebeurt er nu...

Het is een flinke html opmaak en nu zet hij aan het eind van een hele regel steeds een !, deze komen dus ook in de uiteindelijke mail.

*knip een onderdeel uit de code*
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
$mail = "<html>" .
        "<head>" .
            "<title>Bevestiging nieuwsbrief</title>" .
            "<style>" .
                "* {" .
                   "-moz-box-sizing     :   border-box;" .
                    "box-sizing          :   border-box;" .
                "}" .
                "body {" .
                    "background-color    :   #ffffff;" .
                    "margin              :   0px;" .
                    "padding             :   0px;" .
                    "color               :   #666666;" .
                    "font-family         :   verdana, arial, helvetica;" .
                    "font-size           :   11px;" .
                    "line-height         :   17px;" .
                "}" .
                ".sidemenu {" .
                    "background-image   :   url(\"toonmailgrfx.php?ID=43&L=57\");" .
                "}" .
                ".rand {" .
                    "border-color       :   #CCCCCC;" .
                    "border-width       :   1px;" .
                    "border-style       :   solid;" .
                "}" .
                ".rand2 {" .
                    "border-color       :   #CCCCCC;" .
                    "border-width       :   1px;" .
                    "border-style       :   none solid solid solid;" .
                "}" .
                "table {" .
                    "color               :   #666666;" .
                    "font-family         :   verdana, arial, helvetica;" .
                    "font-size           :   11px;" .
                    "line-height         :   17px;" .
                "}" .
                ".header {" .
                    "color               :   #ffffff;" .
                    "font-family         :   verdana, arial, helvetica;" .
                    "font-size           :   11px;" .
                   "font-weight         :   bold;" .
                "}" .
                "a {" .
                    "color              :   #666666;" .
                    "text-decoration        :   underline;" .
                "}" .
                "a.menu {" .
                    "color              :   #ffffff;" .
                    "text-decoration        :   none;" .
                "}" .
                "a.menu:hover {" .
                    "text-decoration        :   underline;" .
                "}" .
            "</style>" .
        "</head>" .
        "</html>" .
        "<body><br><br>" .
            "<div align=\"center\">" .
                "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"550\" height=\"420\" class=\"rand\">" .
                    "<tr>" .
                        "<td height=\"70\" valign=\"middle\">[img]\"toonmailgrfx.php?ID=14&L=57\"></td[/img]" .
                    "</tr>" .
                    "<tr>" .
                        "
<td bgcolor=\"#B4B4B4\" height=\"20\" valign=\"middle\" align=\"right\" class=\"header\">
<a href=\"\" class=\"menu\">contact</a>&nbsp;&nbsp;&nbsp;&nbsp;
<a href=\"oplossingen.php\" class=\"menu\">oplossingen</a>&nbsp;&nbsp;&nbsp;&nbsp;
<a href=\"\" class=\"menu\">home</a>&nbsp;&nbsp;&nbsp;&nbsp;
<a href=\"\" class=\"menu\">portfolio</a>&nbsp;&nbsp;&nbsp;&nbsp;
</td>" .
                    "</tr>" .
                    "<tr>" .


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
/* To send HTML mail, you can set the Content-type header. */
        $headers  = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
        $headers .= "From: Wouter  <wouter@dsfg.nl>\r\n";
        
        if( mail("wouter@fghj.nl", "Bevestiging van uw inschrijving.", $mail, $headers) ){
            //echo "De mail is verstuurd.";
            return true;
        }else{
            //echo "Mail failure!";
            return false;
        }

dit is slechts een klein deel uit de opmaak.
als ik de mail open in Outlook en daar de bron ophaal staat alle code in een suuuper lange sliert achter elkaar die 3 a 4 regels beslaat. Achter iedere regel staat aan het eind een "!". Waar komt deze vandaan?

ps het versturen gaat perfect en de opmaak klopt ook zoals ik hem gemaakt heb.

[edit]
mhh beetje brakke topicnaam, kan hem alleen niet meer veranderen.
iets als [php] html mail probleempje had beter geweest.

[ Voor 64% gewijzigd door Verwijderd op 15-09-2003 14:11 ]


Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op 15 September 2003 @ 14:08:

als ik de mail open in Outlook en daar de bron ophaal staat alle code in een suuuper lange sliert achter elkaar die 3 a 4 regels beslaat.
nogal logisch: jij plakt het ook allemaal aan elkaar vast.
Achter iedere regel staat aan het eind een "!". Waar komt deze vandaan?
Die staat er niet als je ter controle voor het mailen de inhoud van je mailtje naar je scherm echood?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
nogal logisch: jij plakt het ook allemaal aan elkaar vast.
kan het ook anders dan? *blush* :D

in de "normale" html staan de ! niet volgens mij... mom ff double checken
[edit] nee als ik de string op het scherm print en daar de bron van bekijk, heeft ie geen ! tekens.

[ Voor 24% gewijzigd door Verwijderd op 15-09-2003 14:36 ]


Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Het wordt 1 lange sliert omdat je geen \n gebruikt aan het einde van elke regel.
Je krijgt ! omdat je een . gebruikt aan het eind van de laatste regel voor ?> (php had eigenlijk een foutmelding moeten geven hiervoor).

Acties:
  • 0 Henk 'm!

  • narotic
  • Registratie: Maart 2002
  • Laatst online: 02-11-2021
Line endings misschien even toevoegen?

- = Step Into The Pit | Industrial Strength = -


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
PHP:
1
2
3
"</div>" .
        "<br><br></body>" .
        "</html>";

dit is het einde van de $mail variable, wat bedoel je precies _js_ ?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
met de \n aan het eind is het idd verholpen! :)
ik snap niet wat het uitmaakt, voor html maakt het toch niet uit hoe netjes het op is gebouwd zolang de code maar klopt?

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Verwijderd schreef op 15 september 2003 @ 14:38:
PHP:
1
2
3
"</div>" .
        "<br><br></body>" .
        "</html>";

dit is het einde van de $mail variable, wat bedoel je precies _js_ ?
Sorry, dacht dat het stuk dat je gepost had alles was. Dan weet ik niet waarom je een ! hebt.

Acties:
  • 0 Henk 'm!

  • jan-marten
  • Registratie: September 2000
  • Laatst online: 16-09 14:45
PHP:
1
2
3
4
$var = "bla ".
"bla".
"bla";
// nu is $var = "bla blabla"; Het op deze manier aan elkaar plakken het concatenation.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mhh zit wat in jan-marten!
nouja in het vervolg staan er nette new line chars in mijn code! :)

Verwijderd

Topicstarter
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
$mailbody = "
    <!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\"> 
    <!-- copyright adformatie groep --> 
    <!-- ontwerp marc van gurp --> 
    <!-- powered by e-mark solutions bv --> 
    <html> 
    <head> 
    <title>Untitled</title> 
    <style type=\"text/css\"> 
    body{ 
    font-family: Arial, Helvetica, sans-serif; 
    font-size: 12px; 
    line-height: 130%; 
    } 
    td{ 
    font-family: Arial, Helvetica, sans-serif; 
    font-size: 12px; 
    line-height: 130%; 
    } 
    </style> 
    </head> 
    <body> 
    blablabla
    </body>
    </html>";

mail($to, $subject, $mailbody, $headers );


Nog een keer een vraagje over hetzelfde...
Ik heb een heel groot en totaal niet uitgelijnde html opmaak voor een mailbevestiging gekregen. In deze hang ik dan de mailbody uit een andere file.
En vervolgens trap ik hem de mail uit.

Nu krijg ik in de bovenstaande manier weer allemaal !-tekens in mijn mailbody. Als ik de $mailbody print op het scherm wordt hij goed getoond!

wat kan ik hier aan doen?

het herbouwen van de html is geen optie, dat kost teveel tijd/energie.

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
wat denk je er van om linefeeds te gebruiken (\n) ?

Dus:
PHP:
1
2
3
$string = "regel1\n
                 regel2\n
                 regel3\n";

Verwijderd

Topicstarter
als ik die neerzet worden de \n's geprint in de html..... oh bef dat meen je niet.... volgens mij heb ik per ongeluk /n gedaan :D

ff tjekken

Verwijderd

Topicstarter
het werkt....
OMG!

/me zit zich te schamen in een hoekje!*

[ Voor 9% gewijzigd door Verwijderd op 24-09-2003 17:18 ]


Verwijderd

Topicstarter
is
PHP:
1
2
3
$string = "regel1\n 
                 regel2\n 
                 regel3\n";


eigenlijk hetzelfde als:

PHP:
1
2
3
$string =  "regel1\n" . 
                "regel2\n" . 
                "regel3\n";


en heeft een van beide manieren nog een voorkeur om het een of ander?

  • Jelle Niemantsverdriet
  • Registratie: Februari 2000
  • Laatst online: 08:50
Als je even
PHP:
1
2
3
echo '<pre>'.$stringeerstemethode.'</pre>';
// en daarna
echo '<pre>'.$stringtweedemethode.'</pre>';
doet, zie je wel dat dit niet hetzelfde is.

  • NIMIC
  • Registratie: December 2001
  • Niet online
Bij de bovenste code worden de tabs/spaties voor regel1/regel2 meegenomen in de output.
Dat is bij de 2de niet het geval dus het volgende is het resultaat van echo $string;

Rusultaat 1:
code:
1
2
3
regel1
                 regel2 
                 regel3


Resultaat 2:
code:
1
2
3
regel1 
regel2
regel3


De 2de is dus overzichtelijker en zend minder tekens naar de ontvanger.

[ Voor 8% gewijzigd door NIMIC op 25-09-2003 09:55 ]

Pagina: 1