login  Naam:   Wachtwoord: 
Registreer je!
 Forum

PHPMailer attachment

Offline GroundZero - 17/10/2011 15:18 (laatste wijziging 17/10/2011 15:25)
Avatar van GroundZeroLid Beste,

ik krijg geen foutmelding. Ook word het bestand netjes geupload op mijn FTP en klopt alles. De emails komen ook netjes binnen maar zonder de bijlage.

Iemand enig idee wat er fout is?

  1. if(!$mail->AddAttachment('temp/'.$prefix.$_FILES['file']['name'], 'bijlage.png')){
  2. echo 'FOUT ADDATTACHMENT';
  3. exit;
  4. }

11 antwoorden

Gesponsorde links
Offline larssy1 - 17/10/2011 15:21
Avatar van larssy1 MySQL beginner
  1. <?php
  2. //define the receiver of the email
  3. $to = 'youraddress@example.com';
  4. //define the subject of the email
  5. $subject = 'Test email with attachment';
  6. //create a boundary string. It must be unique
  7. //so we use the MD5 algorithm to generate a random hash
  8. $random_hash = md5(date('r', time()));
  9. //define the headers we want passed. Note that they are separated with \r\n
  10. $headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";
  11. //add boundary string and mime type specification
  12. $headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
  13. //read the atachment file contents into a string,
  14. //encode it with MIME base64,
  15. //and split it into smaller chunks
  16. $attachment = chunk_split(base64_encode(file_get_contents('attachment.zip')));
  17. //define the body of the message.
  18. ob_start(); //Turn on output buffering
  19. ?>
  20. --PHP-mixed-<?php echo $random_hash; ?>
  21. Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>"
  22.  
  23. --PHP-alt-<?php echo $random_hash; ?>
  24. Content-Type: text/plain; charset="iso-8859-1"
  25. Content-Transfer-Encoding: 7bit
  26.  
  27. Hello World!!!
  28. This is simple text email message.
  29.  
  30. --PHP-alt-<?php echo $random_hash; ?>
  31. Content-Type: text/html; charset="iso-8859-1"
  32. Content-Transfer-Encoding: 7bit
  33.  
  34. <h2>Hello World!</h2>
  35. <p>This is something with <b>HTML</b> formatting.</p>
  36.  
  37. --PHP-alt-<?php echo $random_hash; ?>--
  38.  
  39. --PHP-mixed-<?php echo $random_hash; ?>
  40. Content-Type: application/zip; name="attachment.zip"
  41. Content-Transfer-Encoding: base64
  42. Content-Disposition: attachment
  43.  
  44. <?php echo $attachment; ?>
  45. --PHP-mixed-<?php echo $random_hash; ?>--
  46.  
  47. <?php
  48. //copy current buffer contents into $message variable and delete current output buffer
  49. $message = ob_get_clean();
  50. //send the email
  51. $mail_sent = @mail( $to, $subject, $message, $headers );
  52. //if the message is sent successfully print "Mail sent". Otherwise print "Mail failed"
  53. echo $mail_sent ? "Mail sent" : "Mail failed";
  54. ?>
Offline Filip - 17/10/2011 15:21
Avatar van Filip IRC guru Zou handig zijn als je effe meegeeft welke mailerclass je gebruikt? en een beetje meer code dan dat? Weet niet wat jij denkt, maar ik (en wss wel meerdere) kunnen helemaal niets zien aan dat stukje code dat je daar geeft..
Offline GroundZero - 17/10/2011 15:22 (laatste wijziging 17/10/2011 15:24)
Avatar van GroundZero Lid De titel zegt PHPMailer en die gebruik ik ook lol 

http://phpmailer.worxware.com/


  1. // phpmailer includen
  2. require("includes/class.phpmailer.php");
  3.  
  4. $mail = new PHPMailer();
  5.  
  6. $mail->From = $_POST['email'];
  7. $mail->FromName = $_POST['achternaam'].', '.$_POST['voornaam'];
  8. $mail->AddAddress('info@test.nl', 'test');
  9. $mail->AddReplyTo($_POST['email'], $_POST['achternaam'].', '.$_POST['voornaam']);
  10.  
  11. $mail->IsHTML(true);
  12.  
  13. $mail->Subject = "test";
  14. $mail->Body = $email;
  15.  
  16. $mail->AddEmbeddedImage('images/email/header.jpg', 'header.jpg', 'images/email/header.jpg');
  17. $mail->AddEmbeddedImage('images/email/voorkeuren.png', 'voorkeuren.jpg', 'images/email/voorkeuren.png');
  18.  
  19. // bijlage uploaden zodat we deze kunnen versturen
  20. if(!empty($_FILES['file']['tmp_name'])){
  21. $prefix = mktime();
  22. move_uploaded_file($_FILES['file']['tmp_name'], 'temp/'.$prefix.$_FILES['file']['name']);
  23.  
  24. $mail->AddAttachment('temp/'.$prefix.$_FILES['file']['name'], 'bijlage.png');
  25. }
  26.  
  27. //$mail->AddAttachment();
  28.  
  29. if(!$mail->Send()){
  30. echo 'LET OP! Er heeft zich een fout voorgedaan met het versturen van de e-mail, neemt u alstublieft contact met ons op!';
  31. exit;
  32. }
  33.  
  34. header('location: http://www.test.nl/aanvraag-verstuurd/');
  35. }
  36. }
Offline larssy1 - 17/10/2011 15:23
Avatar van larssy1 MySQL beginner
GroundZero schreef:
is dat PHP Mailer van http://phpmailer.worxware.com/ ???

De titel zegt PHPMailer en die gebruik ik ook lol 

nope, heb gegoogled op PHP AddAttachement en kwam bij deze website uit.
http://www.webc...chment.php
Offline GroundZero - 17/10/2011 15:26
Avatar van GroundZero Lid yeah klopt maar ik maak gebruik van de geweldige class van PHPMailer (zie bovenstaande code).
Echt super fijn deze class, krijg alleen geen attachments mee gestuurd verder werkt alles perfect inclusief plaatjes en zo 
Offline larssy1 - 17/10/2011 15:27
Avatar van larssy1 MySQL beginner kun je de code geven van je class.phpmailer.php
Offline GroundZero - 17/10/2011 15:28
Avatar van GroundZero Lid tuurlijk 1 seconden (hij is origineel en ongewijzigd):

http://www.codedump.be/code/1287/

Even daar gepost in verband met de lengte 
Offline larssy1 - 17/10/2011 15:35 (laatste wijziging 17/10/2011 15:40)
Avatar van larssy1 MySQL beginner
GroundZero schreef:
tuurlijk 1 seconden (hij is origineel en ongewijzigd):

http://www.codedump.be/code/1287/

Even daar gepost in verband met de lengte 

Goed dat je daar aan heb gedacht de standaard van sitemasters.be is trouwens plaatscode.be in case you would like to know..

Als ik thuis ben zal ik even kijken. Maar met een snelle blik op de code kon ik niks vinden.
-----
Heb je trouwens geprobeerd zonder alle tructjes?
Aangezien een '/' vergeten, al tot een probleem lijd, lijdt, leid, leidt, idk.

  1. if(!$mail->AddAttachment('temp/images/', 'bijlage.png')){
Offline GroundZero - 17/10/2011 15:59
Avatar van GroundZero Lid thanks alvast larssy, nee nog niet geprobeerd met de '/' ervoor maar lijkt me niet dat dit hoeft want een plaatje toevoegen werkt identiek als de attachment en die werken perfect 

$mail->AddEmbeddedImage('images/email/header.jpg');
$mail->AddAttachment('temp/'.$prefix.$_FILES['file']['name']);

EmbeddedImage werkt en heeft de zelfde directory structuur als AddAttachment, enkel de map naam is anders.

De mappen hebben beide CMOD 777 trouwens ;)
Offline Maarten - 17/10/2011 17:11
Avatar van Maarten Erelid
larssy1 schreef:
[..quote..]

Aangezien een '/' vergeten, al tot een probleem lijd, lijdt, leid, leidt, idk.

[..code..]
Bijna. Leidt 
Offline GroundZero - 18/10/2011 12:17 (laatste wijziging 18/10/2011 17:02)
Avatar van GroundZero Lid lol haha ;)

Heb nog geprobeerd maar krijg de attachment echt niet mee verstuurd erg raar.

Wat in de classe staat is de volgende code:

  1. public function AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream') {
  2. try {
  3. if ( !@is_file($path) ) {
  4. throw new phpmailerException($this->Lang('file_access') . $path, self::STOP_CONTINUE);
  5. }
  6. $filename = basename($path);
  7. if ( $name == '' ) {
  8. $name = $filename;
  9. }
  10.  
  11. $this->attachment[] = array(
  12. 0 => $path,
  13. 1 => $filename,
  14. 2 => $name,
  15. 3 => $encoding,
  16. 4 => $type,
  17. 5 => false, // isStringAttachment
  18. 6 => 'attachment',
  19. 7 => 0
  20. );
  21.  
  22. } catch (phpmailerException $e) {
  23. $this->SetError($e->getMessage());
  24. if ($this->exceptions) {
  25. throw $e;
  26. }
  27. echo $e->getMessage()."\n";
  28. if ( $e->getCode() == self::STOP_CRITICAL ) {
  29. return false;
  30. }
  31. }
  32. return true;
  33. }
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.385s