[PHP/IIS/MAIL] Geen inhoud ?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 20:57

Crazy-

Best life ever

Topicstarter
het volgende script gebruik ik, maar ik krijg GEEN inhoud (de attachment werkt WEL) (op IIS6 + PHP 4.3.4)
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
<?php 
    // create the message header... 
    $header  = "From: $ict_naam <$ict_adres>\n"; 
    $header .= "MIME-version: 1.0\n";  
    $header .= "Content-Type: multipart/mixed;\n";  
    $header .= "\tboundary= " . $boundary . "\n\n";  

    $header .= "This is a multi-part message in MIME format.\n\n";  

    // create the message body in the header 
    $header .= "--" . $boundary . "\n";  
    $header .= "Content-Type: " . $ct . ";\n";  
    $header .= "\tcharset=\"iso-8859-1\"\n";  
    $header .= "Content-Transfer-Encoding: quoted-printable\n\n";  

    // now for the attachement 
    $header .= "--" . $boundary . "\n";  
    $header .= "Content-Type: " . $type . "\n";  
    $header .= "Content-Transfer-Encoding: " . $encoding . "\n";  
    $header .= "Content-Disposition: attachment; filename=\"" . "$domein.$ext.txt" . "\"\n\n";  

    // actual attachement 
    $header .= $file_content . "\n\n";  
    $header .= "--" . $boundary . "--"; 

/* dit werkt wel: 
hier krijg ik als content: test*/ 
    mail($ict_adres, $onderwerp, "test") 

/* dit werkt niet: 
hier krijg ik dus geen bericht, wel een attachment.*/ 
mail($ict_adres, $onderwerp, "test", $header); 
?> 


op internet kan ik er weinig over vinden verder
onder Linux werkt het WEL

ik weet WEL dat het te maken mbt het afhandelen van mail onder *nix & windows, maar wat ik ook doe...ik krijg het niet voor elkaar.

iemand een idee waar het aan kan liggen ? (let op: de waardes $ict_adres, $onderwerp etc zijn er wel, maar niet gepost verder)

[ Voor 12% gewijzigd door Kees op 14-11-2003 23:26 . Reden: php-tags ]

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 19:05
Heb je al geprobeerd om wat headers weg te commenten en te zien wat je dan binnen krijgt??

Verder lijkt het mij meer te liggen aan de gebruikte email client, dan aan de server. Omdat het onder Linux wel werkt, zou het ook zo onder Windows moeten zijn. Kijk voor de aardigheid is in de bron van de email (Outlook Express: properties email -> details -> message source). Hierin kun je vaak wel zien wat er mis is gegaan (vooral als je de goed en de foute email met elkaar vergelijkt).

Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 20:57

Crazy-

Best life ever

Topicstarter
het probleem is, de foute mail is ZONDER de $header

ik heb op internet ook al gelezen dat windows beter met header omgaat t.b.v. het versturen (*unix gaat er minder netjes mee om) maar ik zal gaan testen mbt de header

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 19:05
Misschien wel compleet fout, maar misschien ook wel de oplossing: verander de \n eens in \r\n (dit is namelijk een echte newline).

Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 20:57

Crazy-

Best life ever

Topicstarter
geen resultaat :(

vind het wel vreemd dat ik er niks / weinig over kan vinden ...
en onder linux server werkt het wel (maar ik weet wel dat linux servers het anders afhandelen dit soort mails...accepteren meer)

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 20:57

Crazy-

Best life ever

Topicstarter
iemand nog ideeën?

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • 0 Henk 'm!

  • Alex
  • Registratie: Juli 2001
  • Laatst online: 20-08 21:38
offtopic:
Kicken binnen 24 uur :P

Begin eens zonder headers, voeg daarna alles langzaam toe. Overigens zorgt encodng 9 van de 10 keer voor problemen. De mail encode de attachment niet enkel de inhoud vanzijn eigen mail. Kijk daar eens goed naar.

Deze post is bestemd voor hen die een tegenwoordige tijd kunnen onderscheiden van een toekomstige halfvoorwaardelijke bepaalde subinverte plagiale aanvoegend intentioneel verleden tijd.
- Giphart


Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
De mime headers die jij in $header stopt zijn onderdeel van de body.
De header mag dus alleen de rfc822 header bevatten !!!

uit de manual:
bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])

message is in dit geval de body van de mail en additional headers de rfc822 header.

Voor de rest raad ik je aan om rfc2822 en rfc2045-rfc2049 eens te lezen,

[ Voor 55% gewijzigd door stekkel op 16-11-2003 01:01 ]


Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 20:57

Crazy-

Best life ever

Topicstarter
nader onderzoek heb ik aardig wat veranderd, maar werkt het nog niet helemaal:

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
<?php
$fp = @fopen("$attachment.txt","rb"); 

    $file_content = fread($fp,filesize("$attachment.txt")); 
    fclose($fp); 
    
    $sData = chunk_split(base64_encode($file_content));
    
    $headers = "From: $ict_naam <" . $ict_adres .">\r\n";     
    $headers .= "To: $ict_naam <" . $ict_adres .">\r\n"; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-Type: multipart/mixed;\r\n"; 
    $headers .= "\"".$boundary."\""; 
    
    $inhoud = "This is a multi-part message in MIME format.\n\n" . 
    "--$boundary\n" . 
    "Content-Type: text/html; charset=\"iso-8859-1\"\n" . 
    "Content-Transfer-Encoding: 7bit\n\n" . 
    $inhoud . "\n\n"; 
 
    $inhoud .= "--$boundary\n" . 
    "Content-Type: application/octet-stream;\n" . 
    " name=\"$attach.txt\"\n" . 
    "Content-Disposition: attachment;\n" . 
    " filename=\"$attach.txt\"\n" . 
    "Content-Transfer-Encoding: base64\n\n" . 
    $sData . "\n\n" . 
    "--$boundary--\n"; 
?>


nu krijg ik dit binnen: (het bericht dus, ZONDER attachment!)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
This is a multi-part message in MIME format.

--==Multipart_Boundary_x3f8c58528e3c0b16fb6f7b03dfafc657x
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

---bericht----

--==Multipart_Boundary_x3f8c58528e3c0b16fb6f7b03dfafc657x
Content-Type: application/octet-stream;
 name="testdomeinnl.nl.txt"
Content-Disposition: attachment;
 filename="testdomeinnl.nl.txt"
Content-Transfer-Encoding: base64

---mooi base64 code----

--==Multipart_Boundary_x3f8c58528e3c0b16fb6f7b03dfafc657x--


En de header is alsvolgt:

code:
1
2
3
4
5
6
7
8
<van alles erboven van de server etc>
Date: Mon, 17 Nov 2003 17:32:38 +0100
Subject: Mail
From: NAAM <mijn@adres.nl>
To: NAAM <mijn@adres.nl>
MIME-Version: 1.0
Content-Type: multipart/mixed;
"==Multipart_Boundary_x3f8c58528e3c0b16fb6f7b03dfafc657x"

[ Voor 94% gewijzigd door Crazy- op 17-11-2003 18:10 ]

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
wat is $attachment.txt ?

Ik heb zo'n idee dat $sData gewoon leeg is omdat $attachment.txt niet als variabele bedoeld is.

[ Voor 151% gewijzigd door stekkel op 17-11-2003 18:22 ]


Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 20:57

Crazy-

Best life ever

Topicstarter
heb niet alle code laten zien, in ieder geval hier is de goede (werkende) 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
<?php
    // Open de file
    $bestand = fopen($attachment.".txt",'rb'); 
    $data = fread($bestand,filesize($attachment.".txt")); 
    fclose($bestand);
    
    if (!$bestand) { 
        echo 'Er is een probleem opgetreden met het versturen van de e-mail' . "\n"; 
        exit; 
    }
    
    // maak een boundary 
    $random = md5(time()); 
    $MIMEBoundary = "==Multipart_Boundary_x{$random}x"; 
    
    // MIME header
    $headers .= "\nMIME-Version: 1.0\n" . 
    "Content-Type: multipart/mixed;\n" . 
    " boundary=\"$MIMEBoundary\"";
    
    // MIME bericht
    $bericht = "This is a multi-part message in MIME format.\n\n" . 
    "--$MIMEBoundary\n" . 
    "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . 
    "Content-Transfer-Encoding: 7bit\n\n" . 
    $inhoud . "\n\n"; 
    
    // Data encoden zodat hij in de mail kan
    $data = chunk_split(base64_encode($data));
    
    // Attachment toevoegen
    $bericht .= "--$MIMEBoundary\n" . 
    "Content-Type: application/octet-stream;\n" . 
    " name=\"$attachment.txt\"\n" . 
    "Content-Disposition: attachment;\n" . 
    " filename=\"$attachment.txt\"\n" . 
    "Content-Transfer-Encoding: base64\n\n" . 
    $data . "\n\n" . 
    "--$MIMEBoundary--\n"; 
?>


bedankt in ieder geval

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


Acties:
  • 0 Henk 'm!

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 17-09 08:05
werkt het nu of niet?

Zoals de code nu is sluit je de filehandle en check je daarna of die bestaat. Je script eindigt dus voortijdig.

Acties:
  • 0 Henk 'm!

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 20:57

Crazy-

Best life ever

Topicstarter
heb niet alle code laten zien, in ieder geval hier is de goede (werkende) code:
ja werkt dus :)

filehandle check heb ik daar neergezet voor test, onderhand zit er een betere foutcontrole op etc :)

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu

Pagina: 1