MIME mail
Ik heb de volgende websites geraadpleegt:
http://www.phphulp.nl/php/scripts/1/262/
http://www.zend.com/zend/spotlight/sendmimeemailpart1.php
http://www.sitepoint.com/article/advanced-email-php/5
Zodoende ben ik tot het volgende voorbeeldje gekomen:
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
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
<?php
if(isset($_POST['submit'])){
//scheidingsteken voor het e-mailtje (boundary)
$bound = "web123456789core";
//tekst uit het formulier
$eigenaar = "Gert-Jan Bierkens";
$mail_eigenaar = "[email protected]";
$bezoeker = "John Johnson";
$mail_bezoeker = "[email protected]";
$titel = "titel";
$bericht = "test";
//het ge-uploade bestand
$upload = $_FILES['upload']['tmp_name'];
$bestandstype = $_FILES['upload']['type'];
$bestandsnaam = $_FILES['upload']['name'];
//het bestand openen (read binary)
if (is_uploaded_file($upload)) {
$bestand = fopen($upload,'rb');
$inhoud = fread($bestand,filesize($upload));
fclose($bestand);
}
//headers voor mixed content
$headers = "From: " . $eigenaar . " <" . $mail_eigenaar . ">\r\n";
$headers .= "To: " . $bezoeker . " <" . $mail_bezoeker . ">\r\n";
$headers .= "Subject: " . $titel . "\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed;";
$headers .= "boundary=\"" . $bound . "\";";
$headers .= "Content-Disposition: attachment\r\n";
$body = "--" . $bound;
$body .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
$body .= "Content-Transfer-Encoding: 7bit\r\n";
$body .= $bericht;
$body .= "--" . $bound;
$body .= "Content-Type: application/octet-stream; name=" . $bestandsnaam . "\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n";
$body .= "Content-disposition: attachment\r\n";
$body .= chunk_split(base64_encode($inhoud)) . "\r\n";
$body .= "--" . $bound; "--";
mail($mail_eigenaar, $titel, $body, $headers);
}
?>
<form enctype="multipart/form-data" method="post" action="">
<input type="file" name="upload" />
<input type="submit" value="Verzenden" name="submit" />
</form>
</body>
</html>
if(isset($_POST['submit'])){
//scheidingsteken voor het e-mailtje (boundary)
$bound = "web123456789core";
//tekst uit het formulier
$eigenaar = "Gert-Jan Bierkens";
$mail_eigenaar = "[email protected]";
$bezoeker = "John Johnson";
$mail_bezoeker = "[email protected]";
$titel = "titel";
$bericht = "test";
//het ge-uploade bestand
$upload = $_FILES['upload']['tmp_name'];
$bestandstype = $_FILES['upload']['type'];
$bestandsnaam = $_FILES['upload']['name'];
//het bestand openen (read binary)
if (is_uploaded_file($upload)) {
$bestand = fopen($upload,'rb');
$inhoud = fread($bestand,filesize($upload));
fclose($bestand);
}
//headers voor mixed content
$headers = "From: " . $eigenaar . " <" . $mail_eigenaar . ">\r\n";
$headers .= "To: " . $bezoeker . " <" . $mail_bezoeker . ">\r\n";
$headers .= "Subject: " . $titel . "\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed;";
$headers .= "boundary=\"" . $bound . "\";";
$headers .= "Content-Disposition: attachment\r\n";
$body = "--" . $bound;
$body .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
$body .= "Content-Transfer-Encoding: 7bit\r\n";
$body .= $bericht;
$body .= "--" . $bound;
$body .= "Content-Type: application/octet-stream; name=" . $bestandsnaam . "\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n";
$body .= "Content-disposition: attachment\r\n";
$body .= chunk_split(base64_encode($inhoud)) . "\r\n";
$body .= "--" . $bound; "--";
mail($mail_eigenaar, $titel, $body, $headers);
}
?>
<form enctype="multipart/form-data" method="post" action="">
<input type="file" name="upload" />
<input type="submit" value="Verzenden" name="submit" />
</form>
</body>
</html>
De mail wordt verzonden, maar op 1 of andere manier pakt ie die headers niet :D Ik heb hier al vaker mee gestoeid... en op 1 of andere manier doe ik altijd iets fout met de headers (althans... dat denk ik) kan iemand me helpen?
Gewijzigd op 21/03/2006 22:51:00 door Gert-Jan
net allemaal paste en copy werk, krijgt ie te horen dat ie wat anders moeten kiezen. Altijd fijn die hulp van Arjan. ;)
• Zet het bestand class.phpmailer.php in dezelfde map als die waarin je script wordt uitgevoerd.
• Include class.phpmailer.php in je script.
Gebruik onderdstaande code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$mail = new PHPMailer ();
$mail->AddAddress ('[email protected]');
$mail->AddAttachment ('bestandsnaam');
$mail->From = '';
$mail->FromName = '';
$mail->AddReplyTo ('');
$mail->Subject = '';
$mail->Body = '';
if ($mail->Send ()) {
$msg = '<p>De mail is verzonden!</p>';
}
$mail->ClearAllRecipients ();
$mail->ClearAttachments ();
}
?>
$mail = new PHPMailer ();
$mail->AddAddress ('[email protected]');
$mail->AddAttachment ('bestandsnaam');
$mail->From = '';
$mail->FromName = '';
$mail->AddReplyTo ('');
$mail->Subject = '';
$mail->Body = '';
if ($mail->Send ()) {
$msg = '<p>De mail is verzonden!</p>';
}
$mail->ClearAllRecipients ();
$mail->ClearAttachments ();
}
?>
Gewijzigd op 21/03/2006 23:01:00 door Jan Koehoorn
2 fanatieken phpmailer fans.
Maar inderdaad Kalle, dan is dit waarschijnlijk allemaal voor niets geweest. En ik ben al heel de avond bezig om te lezen over mime-types, headers ed. :-D
Gewijzigd op 21/03/2006 23:05:00 door Gert-Jan
En waarschijnlijk zal je tijdens het 'inlezen' ook weer andere dingen geleerd hebben.
Kalle:
2 fanatieken phpmailer fans.
Oh, er zijn er véél meer. En terecht :-)
Handig ding daar ben ik het mee eens.
Ik ken phpmailer via Jan, dus Jan... mijn eeuwig respect :).
Ook handig: er zit ook een SMTP class bij. Dus als je een grote groepsmail wilt verzenden met veel BCC's en je host pikt het niet, dan kun je een andere SMTP server opgeven.
Arjan:
Ik ken phpmailer via Jan, dus Jan... mijn eeuwig respect :).
Zoals je weet is het respect geheel wederzijds ;-)
Ja das handig en al voor je gemaakt.
Mochten mensen ooit zoeken op dit topic, hier nog een link over de php mailer die ik bruikbaar vond:
http://designhulp.nl/artikelen/server-side/php-mysql/emails-versturen-met-php-phpmailer