login  Naam:   Wachtwoord: 
Registreer je!
 Forum

mail met bijlage

Offline Stefan14 - 07/12/2008 16:16 (laatste wijziging 07/12/2008 16:17)
Avatar van Stefan14PHP gevorderde Ik heb onderstaande code in de body en headers van mijn mail staan, dit heb ik uit een script overgenomen, maar ik wil een bestand dat reeds op mijn server staat meesturen, en niet een geupload bestand. Hoe krijg ik dit voor elkaar?

  1. <?php
  2. $body = 'This is a multi-part message in MIME format.\r\n';
  3. $body .= '\r\n';
  4. $body .= '--'.bound.'\r\n';
  5. $body .= 'Content-Type: text/html; charset=iso-8859-1\r\n';
  6. $body .= 'Content-Transfer-Encoding: 7bit\r\n';
  7. $body .= '\r\n';
  8. $body .= $bericht.'\r\n';
  9. $body .= '--'.bound.'\r\n';
  10. $body .= 'Content-Type: application/octet-stream; name="../'.$factuur_directory.'/'.$factuurnummer.'.pdf"\r\n';
  11. $body .= 'Content-Transfer-Encoding: base64\r\n';
  12. $body .= 'Content-disposition: attachment\r\n';
  13. $body .= '\n';
  14. $body .= chunk_split(base64_encode('../'.$factuur_directory.'/'.$factuurnummer.'.pdf')) . '\r\n';
  15.  
  16. $headers = 'From: '.$sitenaam.' <'.$site_van_email.'>\r\n';
  17. $headers .= 'Reply-To: '.$sitenaam.' <'.$site_van_email.'>\r\n';
  18. $headers .= 'MIME-Version: 1.0\r\n';
  19. $headers .= 'Content-Type: multipart/mixed; boundary=\''.bound.'\'\r\n';
  20. $headers .= 'Content-Disposition: attachment\r\n';
  21. ?>

8 antwoorden

Gesponsorde links
Offline bl00d0script - 07/12/2008 16:33
Avatar van bl00d0script Onbekend niet dus, als je msn of hotmail hebt laat ze daarna toe mailen. en open de bijlage simpel. als je het niet altijd vertrouwd haal het bijlage gedeelte dan weg.
Offline Koen - 07/12/2008 16:47
Avatar van Koen PHP expert
bl00d0script schreef:
niet dus, als je msn of hotmail hebt laat ze daarna toe mailen. en open de bijlage simpel. als je het niet altijd vertrouwd haal het bijlage gedeelte dan weg.


Vage antwoorden ftw..

Wat denk je hier van?
Offline vinTage - 07/12/2008 18:40
Avatar van vinTage Nieuw lid @ts:
1) \r\n werkt alleen tussen dubbele quotes
2) bound wel defined ?
Offline Stefan14 - 07/12/2008 18:40 (laatste wijziging 07/12/2008 18:46)
Avatar van Stefan14 PHP gevorderde Ik heb dat script overgenomen, en in mijn eigen script gezet, dus heb nu het onderstaande:

  1. <?php
  2. $file = fopen($bestand,'rb');
  3. $data = fread($file,filesize($bestand));
  4. fclose($file);
  5.  
  6. $body = 'This is a multi-part message in MIME format.\r\n';
  7. $body .= '\n\n';
  8. $body .= '--{==Multipart_Boundary_x{'.md5(time()).'}x}\n';
  9. $body .= 'Content-Type: text/html; charset="iso-8859-1"\n';
  10. $body .= 'Content-Transfer-Encoding: 7bit\n\n';
  11. $body .= '\n\n';
  12. $body .= '--{==Multipart_Boundary_x{'.md5(time()).'}x}\n';
  13.  
  14. $body .= 'Content-Type: application/octet-stream;\n';
  15. $body .= 'name="{'.$bestand.'}"\n';
  16. $body .= 'Content-disposition: attachment\n';
  17. $body .= 'filename="{'.$bestand.'}"\n';
  18. $body .= 'Content-Transfer-Encoding: base64\n\n';
  19. $body .= chunk_split(base64_encode($data));
  20. $body .= '\n\n';
  21. $body .= '--{==Multipart_Boundary_x{'.md5(time()).'}x}--\n';
  22.  
  23. $headers = 'From: '.$sitenaam.' <'.$site_van_email.'>\r\n';
  24. $headers .= 'Reply-To: '.$sitenaam.' <'.$site_van_email.'>\r\n';
  25. $headers .= 'MIME-Version: 1.0\r\n';
  26. $headers .= 'Content-Type: multipart/mixed; boundary="==Multipart_Boundary_x{'.md5(time()).')x\r\n';
  27. $headers .= 'Content-Disposition: attachment\r\n';
  28. ?>


Maar ik krijg nu een e-mail vol met onbruikbare letters en tekens, oftewel, dat is het resultaat van de base64_encode natuurlijk.
Ook staat mijn bericht wat ik de ontvanger wil laten lezen er op deze manier niet in, waar zet ik deze?

EDIT:
@vintage: dat van die dubbele quotes wist ik niet, die probeer ik juist zoveel mogelijk te vermijden i.v.m. escapen e.d.
Wat bedoel je met defined?
Offline Martijn - 07/12/2008 18:49
Avatar van Martijn Crew PHP defined is of iets een waarde heeft. Of dat het niet gewoon een tekst is zonder betekenis
Offline vinTage - 07/12/2008 19:11
Avatar van vinTage Nieuw lid Dat van die dubbele vs single quotes los ik zo op:
  1. $eol = "\r\n";
  2.  
  3. $header .= 'blaat<blaat>'.$eol;
Offline Aar - 07/12/2008 22:33
Avatar van Aar PHP interesse Pfff, waarom moeilijk doen?
gebruik gewoon een mail-handler als PHPmailer of Swiftmailer?
Daar kan je zeer makkelijk e-mails mee samenstellen en versturen via PHP.
Offline vinTage - 07/12/2008 22:36
Avatar van vinTage Nieuw lid
Aar schreef:
Pfff, waarom moeilijk doen?
gebruik gewoon een mail-handler als PHPmailer of Swiftmailer?
Daar kan je zeer makkelijk e-mails mee samenstellen en versturen via PHP.


Dat IS moeilijk doen, een 1670 regels tellende class(php mailer 2.0) gebruiken voor één "static" mailtje
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.325s