Voordat ik hier met ellenlange scripts ga gooien zal ik maar eerst even vragen of het misschien al bestaat...
Ik ben op zoek naar een script dat een bouncemail kan verwerken en onafhankelijk van het type mailserver dat 'm bounced de bounce-reden (user unknown e.d.) en het gebouncde emailadres (ditemailadres@bestaatniet.nl) kan achterhalen uit het bouncemailtje (de body uitlezen mbv imap functies o.i.d.)...
Daarnaast gebruik ik het onderstaande script om de mail te versturen.
Zal het mailtje door alle mailservers correct worden gebounced naar het bounce-adres dat hieronder is opgegeven?
Ik ben op zoek naar een script dat een bouncemail kan verwerken en onafhankelijk van het type mailserver dat 'm bounced de bounce-reden (user unknown e.d.) en het gebouncde emailadres (ditemailadres@bestaatniet.nl) kan achterhalen uit het bouncemailtje (de body uitlezen mbv imap functies o.i.d.)...
Daarnaast gebruik ik het onderstaande script om de mail te versturen.
Zal het mailtje door alle mailservers correct worden gebounced naar het bounce-adres dat hieronder is opgegeven?
code:
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
| <? // functie © SchizoDuckie // FUNCTIE OM MAIL TE VERZENDEN IN MULTIPART/ALTERNATIVE function SendMail($mailarray) { $mailarray['InnerBoundary'] = "----=_InnerBoundery_001"; $mailarray['OuterBoundary'] = "----=_OuterBoundary_000"; $mailarray['html']=$mailarray['html']?$mailarray['html']:preg_replace("/\n/","<br>",$mailarray['text']) or die("Er is geen content beschikbaar."); $mailarray['text']=$mailarray['text']?$mailarray['text']:"U heeft een html mailer nodig om dit bericht te lezen."; // BERICHTEN BEGINNEN MET text/html, ALTERNATIEVEN IN OUTERBOUNDARY $mailarray['Message'] ="Dit is een multipart bericht in MIME formaat.\n"; $mailarray['Message'].="\n--".$mailarray['OuterBoundary']."\n"; $mailarray['Message'].="Content-Type: multipart/alternative;\n\tboundary=\"".$mailarray['InnerBoundary']."\"\n\n"; // PLAIN GEDEELTE $mailarray['Message'].="\n--".$mailarray['InnerBoundary']."\n"; $mailarray['Message'].="Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n"; $mailarray['Message'].="Content-Transfer-Encoding: quoted-printable\n\n"; // PLAIN KOMT HIER $mailarray['Message'].=$mailarray['text']."\n\n"; // HTML GEDEELTE $mailarray['Message'].="\n--".$mailarray['InnerBoundary']."\n"; $mailarray['Message'].="Content-Type: text/html;\n\tcharset=\"iso-8859-1\"\n"; $mailarray['Message'].="Content-Transfer-Encoding: base64\n\n"; // HTML KOMT HIER $mailarray['Message'].=chunk_split(base64_encode($mailarray['html']))."\n\n"; // EINDE VAN IB $mailarray['Message'].="\n--".$mailarray['InnerBoundary']."--\n"; // ATTACHMENTS KOMEN HIER if(!empty($mailarray['attachments'])) { for ($j=0; $j< sizeof($mailarray['attachments']); $j++) { $mailarray['Message'].= "\n--".$mailarray['OuterBoundary']."\n"; $mailarray['Message'].="Content-Type: application/octetstream;\n\tname=\"".$mailarray['attachments'][$j]['filename']."\"\n"; $mailarray['Message'].="Content-Transfer-Encoding: base64\n"; $mailarray['Message'].="Content-Disposition: attachment;\n\tfilename=\"".$mailarray['attachments'][$j]['filename']."\"\n\n"; $mailarray['Message'].= chunk_split(base64_encode($mailarray['attachments'][$j]['content'])); $mailarray['Message'].="\n\n"; } } // EINDE BERICHT $mailarray['Message'].="\n--".$mailarray['OuterBoundary']."--\n"; // HET VERZENDEN BEGINT HIER $connect = fsockopen(ini_get("SMTP"), ini_get("smtp_port"), $errno, $errstr, 30) or throw_error("Connectie met de sendmail server niet mogelijk."); $rcv = fgets($connect, 1024); fputs($connect, "HELO {$_SERVER['SERVER_NAME']}\r\n"); $rcv = fgets($connect, 1024); // GEBRUIK HIER BOUNCEADDR OM BOUNCEMAILTJES NAAR JUISTE BOX TE STUREN // LET OP: DIT IS NIET DIRECT ZICHTBAAR VOOR DE ONTVANGER fputs($connect, "MAIL FROM:".$mailarray['bounceaddr']."\r\n"); $rcv = fgets($connect, 1024); fputs($connect, "RCPT TO:".$mailarray['toaddr']."\r\n"); $rcv = fgets($connect, 1024); fputs($connect, "DATA\r\n"); $rcv = fgets($connect, 1024); fputs($connect, "Subject: ".$mailarray['subject']."\r\n"); fputs($connect, "From: ".$mailarray['fromname']." <".$mailarray['fromaddr'].">\r\n"); fputs($connect, "To: ".$mailarray['toname']." <".$mailarray['toaddr'].">\r\n"); fputs($connect, "X-Sender: <".$mailarray['fromaddr'].">\r\n"); fputs($connect, "MIME-Version: 1.0\r\n"); fputs($connect, "Return-Path: <".$mailarray['fromaddr'].">\r\n"); fputs($connect, "Errors-To: <".$mailarray['fromaddr'].">\r\n"); // DE ONDERSTAANDE OPTIES ZIJN WEGGEQUOTE //fputs($connect, "X-Mailer: PHP ÜberMailer\r\n"); //fputs($connect, "X-Priority: 1\r\n"); //fputs($connect, "X-MSMail-Priority: High\r\n"); fputs($connect, "Content-Type: multipart/mixed;\r\n\tboundary=\"".$mailarray['OuterBoundary']."\"\r\n"); fputs($connect, "\r\n"); fputs($connect, stripslashes($mailarray['Message'])." \r\n"); fputs($connect, ".\r\n"); $rcv = fgets($connect, 1024); fputs($connect, "RSET\r\n"); $rcv = fgets($connect, 1024); fputs ($connect, "QUIT\r\n"); $rcv = fgets ($connect, 1024); fclose($connect); // BERICHT DAT GETOOND WORDT ALS HET VERZENDEN VOLTOOID IS echo("Mail: Message sent to ".$mailarray['toname']." <".$mailarray['toaddr']."><br>"); } // CODE OM MAIL OP TE MAKEN $mailarray['fromname'] = 'Mij'; $mailarray['fromaddr'] = 'mij@mijndomein.nl'; $mailarray['toname'] = 'Jou'; $mailarray['toaddr'] = 'jouw@jouwdomein.nl; $mailarray['bounceaddr'] = 'bounce@mijndomein.nl'; $mailarray['subject'] = 'Testing.. Message'; $mailarray['text'] = 'Text body'; $mailarray['html'] = '<b>HTML body</b>'; // CODE OM MAIL TE VERZENDEN sendMail($mailarray); ?> |