SitePoint Sponsor |
|
User Tag List
Results 1 to 2 of 2
Thread: Error in my coding $this header
-
Apr 29, 2009, 09:51 #1
- Join Date
- Jul 2008
- Location
- Vancouver, BC Canada
- Posts
- 11
- Mentioned
- 0 Post(s)
- Tagged
- 0 Thread(s)
Error in my coding $this header
I'm having an issue trying to get an email to send. I've narrowed it down to this bit of code but I'm not sure what to do to get the body of the email to send. From what I can tell, with my limited PHP knowledge, the offending code is $this->header .= $this->body;
I've stripped down the body of the email and still can't get any of it to send. I've read that the MIME code can be very finicky with the servers. These files worked and the email was redirected before I took over and changed servers. I'm not sure what else to look for. Would it be the coding in the body file?
Code:<? class eMail { var $to = array(); var $cc = array(); var $bcc = array(); var $attachment = array(); var $boundary = ""; var $header = ""; var $subject = ""; var $body = ""; function eMail($name,$mail) { $this->boundary = md5(uniqid(time())); $this->header .= "From: $name <$mail>\n"; } function to($mail) { $this->to[] = $mail; } function cc($mail) { $this->cc[] = $mail; } function bcc($mail) { $this->bcc[] = $mail; } function attachment($file) { $this->attachment[] = $file; } function subject($subject) { $this->subject = $subject; } function text($text) { $this->body = "Content-Type: text/plain; charset=ISO-8859-1\n"; $this->body .= "Content-Transfer-Encoding: 8bit\n\n"; $this->body .= $text."\n"; } function html($html) { $this->body = "Content-Type: text/html; charset=ISO-8859-1\n"; //$this->body .= "Content-Transfer-Encoding: quoted-printable\n\n"; //$this->body .= "<html><body>\n".$html."\n</body></html>\n"; $this->body .= "\n".$html."\n\n"; } function send() { // CC Empfänger hinzufügen $max = count($this->cc); if($max>0) { $this->header .= "Cc: ".$this->cc[0]; for($i=1;$i<$max;$i++) { $this->header .= ", ".$this->cc[$i]; } $this->header .= "\n"; } // BCC Empfänger hinzufügen $max = count($this->bcc); if($max>0) { $this->header .= "Bcc: ".$this->bcc[0]; for($i=1;$i<$max;$i++) { $this->header .= ", ".$this->bcc[$i]; } $this->header .= "\n"; } $this->header .= "Content-Type: multipart/mixed; boundary=$this->boundary\n\n"; $this->header .= "This is a multi-part message in MIME format\n"; $this->header .= "--$this->boundary\n"; $this->header .= $this->body; $this->header .= "MIME-Version: 1.0\n"; // Attachment hinzufügen $max = count($this->attachment); if($max>0) { for($i=0;$i<$max;$i++) { $file = fread(fopen($this->attachment[$i], "r"), filesize($this->attachment[$i])); $this->header .= "--".$this->boundary."\n"; $this->header .= "Content-Type: application/x-zip-compressed; name=".$this->attachment[$i]."\n"; $this->header .= "Content-Transfer-Encoding: base64\n"; $this->header .= "Content-Disposition: attachment; filename=".$this->attachment[$i]."\n\n"; $this->header .= chunk_split(base64_encode($file))."\n"; $file = ""; } } $this->header .= "--".$this->boundary."--\n\n"; foreach($this->to as $mail) { mail($mail,$this->subject,"",$this->header); //print("<pre>".$this->header."<pre>"); } } } ?>
-
Apr 29, 2009, 11:42 #2
- Join Date
- Apr 2009
- Location
- Lawrence KS
- Posts
- 264
- Mentioned
- 0 Post(s)
- Tagged
- 0 Thread(s)
I can't immediately tell what's wrong with your code, but I think you'd be better off using a PHP mailer library rather than reinventing the wheel. I have used SwiftMailer with success (http://swiftmailer.org/) and it provides a simple php interface for sending mail, including multi-part with attachments.
Add your logo to Pocket Folders.
Bookmarks