Mijn script voert normaalgezien een loop uit om mails met bijlage te versturen, aan de hand van het aantal bijlages dat er zijn. Deze worden dan telkens via PEAR verstuurd. Nu stopt mijn code echter altijd met het uitvoeren van de loop als de mail succesvol is verstuurd. Wat doe ik verkeerd? De loop bleef wel doorwerken gebruikmakende van de standaard php-mailfunctie maar moet het werkende krijgen met PEAR.
PHP: filename
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
| foreach ($seats as $sid) { $filename = UPLOAD_PATH.'tickets/p_'.$_POST['id'].'_'.$sid.'.pdf'; # Send to CLIENT $Email->sendAttachment($client_email, $subject, $message, $admin_email, $admin_email, basename($filename), $filename, 'application/pdf'); function sendAttachment($to, $subject, $body, $from, $replyTo, $filename, $filepath, $filemime=null) { include('Mail.php'); $content = chunk_split(base64_encode(@file_get_contents($filepath))); $uid = md5(uniqid(rand(), true)); $headers = array ('From' => $replyTo,'To' => $to, 'Subject' => $subject,'MIME-Version' => "1.0", 'Content-Type' => 'multipart/mixed; boundary="PHP-mixed-'.$uid.'"'); $message = "--PHP-mixed-".$uid.$this->eol; $message .= 'Content-Type: multipart/alternative; boundary="PHP-alt-'.$uid.'"'.$this->eol.$this->eol; $message .= "--PHP-alt-".$uid.$this->eol; $message .= "Content-type: ".$this->contentType."; charset=".$this->charset.$this->eol; $message .= "Content-Transfer-Encoding: ".$this->getContentTransferEncoding().$this->eol.$this->eol; $message .= $body.$this->eol.$this->eol; $message .= "--PHP-alt-".$uid."--".$this->eol.$this->eol; $message .= "--PHP-mixed-".$uid.$this->eol; $message .= 'Content-Type: '.(!empty($filemime) ? $filemime : 'application/octet-stream').'; name="'.$filename.'"'.$this->eol; $message .= "Content-Transfer-Encoding: base64".$this->eol; $message .= 'Content-Disposition: attachment; filename="'.$filename.'"'.$this->eol.$this->eol; $message .= $content.$this->eol; $message .= "--PHP-mixed-".$uid."--".$this->eol; $host = "ssl://smtp.gmail.com"; $port = "465"; $username = "ticketing@mdware.org"; $password = "********"; $smtp = Mail::factory('smtp', array ( 'host' => $host, 'port' => $port, 'auth' => true, 'username' => $username, 'password' => $password)); $mail = $smtp->send($to, $headers, $message); } } |