Re: Attaching a file in mail()

From: Date: Sun, 22 Oct 2000 23:29:37 +0000
Subject: Re: Attaching a file in mail()
Groups: php.general 
Request: Send a blank email to php-general+get-21672@lists.php.net to get a copy of this message
When using this mime_mail class has anyone experienced difficulties in getting GroupWise mail servers to handle their email properly. I have been working trying to find the problem and not making any progress. The problem is unanimous among anyone that is using GroupWise as their email server. The only part of the email that they receive is the header information (To, From and Subject). The remaining portion of the email and any attachments are lost. Individuals that have email hosted on other email servers all receive their email as advertised. I have used this class in conjunction with the smtp_mail class, by itself, with attachments, without attachments and just about every other combination that I can think of with no success. If there were not so many people that I need to send this to that are using GroupWise I would have stopped troubleshooting this problem long ago. Thanks in advance for your help and any suggestions would be greatly appreciated!! -Glenn It certainly is, use this <? // store as "mime_mail.inc" class mime_mail { var $parts; var $to; var $from; var $cc; var $headers; var $subject; var $body; /* * void mime_mail() * class constructor */ function mime_mail() { $this->parts = array(); $this->to = ""; $this->cc = ""; $this->from = ""; $this->subject = ""; $this->body = ""; $this->headers = ""; } /* * void add_attachment(string message, [string name], [string ctype]) * Add an attachment to the mail object */ function add_attachment($message, $name = "", $ctype = "application/octet-stream") { $this->parts[] = array ( "ctype" => $ctype, "message" => $message, "encode" => $encode, "name" => $name ); } /* * void build_message(array part= * Build message parts of an multipart mail */ function build_message($part) { $message = $part[ "message"]; $message = chunk_split(base64_encode($message)); $encoding = "base64"; return "Content-Type: ".$part[ "ctype"]. ($part[ "name"]? "; name = \"".$part[ "name"]. "\"" : ""). "\nContent-Transfer-Encoding: $encoding\n\n$message\n"; } /* * void build_multipart() * Build a multipart mail */ function build_multipart() { $boundary = "b".md5(uniqid(time())); $multipart = "Content-Type: multipart/mixed; boundary = $boundary\n\nThis is a MIME encoded message.\n\n--$boundary"; for($i = sizeof($this->parts)-1; $i >= 0; $i--) { $multipart .= "\n".$this->build_message($this->parts[$i]). "--$boundary"; } return $multipart.= "--\n"; } /* * string get_mail() * returns the constructed mail */ function get_mail($complete = true) { $mime = ""; if (!empty($this->from)) $mime .= "From: ".$this->from. "\n"; if (!empty($this->headers)) $mime .= $this->headers. "\n"; if ($complete) { if (!empty($this->to)) { $mime .= "To: $this->to\n"; } if (!empty($this->cc)) { $mime .= "CC: $this->cc\n"; } if (!empty($this->subject)) { $mime .= "Subject: $this->subject\n"; } } if (!empty($this->body)) $this->add_attachment($this->body, "", "text/plain"); $mime .= "MIME-Version: 1.0\n".$this->build_multipart(); return $mime; } /* * void send() * Send the mail (last class-function to be called) */ function send() { $mime = $this->get_mail(false); mail($this->to, $this->subject, "", $mime); } }; // end of class ?> use like this: include "/mime_mail.inc"; $filename ="test.pdf"; $content_type = "application/pdf"; $fd = fopen($filename, "r"); $data = fread($fd, filesize($filename)); fclose($fd); # create object instance $mail = new mime_mail; # set all data slots $mail->from = "$email_from"; $mail->to = "$email_to"; $mail->subject = "Your Subject."; $mail->body = "Your Body."; # append the attachment $mail->add_attachment($data, $filename, $content_type); # send e-mail $mail->send(); At 02:38 PM 10/21/00 +0500, you wrote: >Is it possible to attach a file in PHP mail( )? If yes, how? > >Thanks > > > >-- >PHP General Mailing List (http://www.php.net/) >To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net >For additional commands, e-mail: php-general-help@lists.php.net >To contact the list administrators, e-mail: php-list-admin@lists.php.net > > >

« previous php.general (#21672) next »