On Tue, 2007-12-11 at 06:33 +0200, Me2resh Lists wrote: > Dear All, > > i wrote this class below to send Mail. but when i use it. i get the sender > No Body. and from the address of the server, not the From address that i > specify. and the MIME Headers as text in the message itself. and the > attachment is pasted as binary text also. > can anyone help please ?? > > here is the code : > -------------------------------------------------------------------- > <?php > > $Mail = new MainClass(); > > $Mail->Construct("Ahmed", "me2resh.lists@xxxxxxxxx", "Test Mail", "Hello, > this is my first message"); > $Mail->AddTo("ahmed@xxxxxxxxxxxxxxxxxxxxx", "Ahmed"); > $Mail->AddCc("me2resh@xxxxxxx", "Me2resh"); > $Mail->AddBcc("ahmed@xxxxxxxxxxxxxxxxxxxx", "hola"); > $Mail->AddAttach("favicon.ico"); > $Mail->SendMail(); > > echo "<pre>"; > print_r($Mail); > > /** > * > */ > class MainClass{ > > /** > * > */ > > var $To = ""; > var $Cc = ""; > var $Bcc = ""; > var $From = ""; > var $Name = ""; > var $Subject = ""; > var $Message = ""; > var $Headers = ""; > > function Construct($name, $from, $subject, $message){ > //construct message > if ($name == ""){ > $name = $from; > } > $this->Name = $name; > $this->From = $from; > $this->Subject = $subject; > $this->Message = $message; > }//end of Construct > > > function AddTo($email, $name){ > // add reciepnt to To array > if ($name == ""){ > $name = $email; > } > if ($this->To == ""){ > $this->To .= $name.' <'.$email.'>'; > }else{ > $this->To .= ",".$name.' <'.$email.'>'; > } > }// end of AddTo > > > function AddCc($email, $name){ > // add reciepnt to Cc array > if ($name == ""){ > $name = $email; > } > if ($this->Cc == ""){ > $this->Cc .= $name.' <'.$email.'>'; > }else{ > $this->Cc .= ",".$name.' <'.$email.'>'; > } > } > > > function AddBcc($email, $name){ > // add reciepnt to Bcc array > if ($name == ""){ > $name = $email; > } > if ($this->Bcc == ""){ > $this->Bcc .= $name.' <'.$email.'>'; > }else{ > $this->Bcc .= ",".$name.' <'.$email.'>'; > } > } > > function AddAttach($attach){ > //add attach to array > //if (is_uploaded_file($attach)) { > // Read the file to be attached ('rb' = read binary) > $file = fopen($attach,'rb'); > $data = fread($file,filesize($attach)); > fclose($file); > > // Generate a boundary string > $semi_rand = md5(time()); > $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; > > // Add the headers for a file attachment > $this->Headers .= "\nMIME-Version: 1.0\n" . > "Content-Type: multipart/mixed;\n" . > " boundary=\"{$mime_boundary}\""; > > // Add a multipart boundary above the plain message > $this->Message = "This is a multi-part message in MIME > format.\n\n" . > "--{$mime_boundary}\n" . > "Content-Type: text/plain; charset=\"iso-8859-1\"\n" > . > "Content-Transfer-Encoding: 7bit\n\n" . > $this->Message . "\n\n"; > // Base64 encode the file data > $data = chunk_split(base64_encode($data)); > // Add file attachment to the message > $this->Message .= "--{$mime_boundary}\n" . > "Content-Type: {filetype($attach)};\n" . > " name=\"{$attach}\"\n" . > "Content-Disposition: attachment;\n" . > " filename=\"{$attach}\"\n" . > "Content-Transfer-Encoding: base64\n\n" . > $data . "\n\n" . > "--{$mime_boundary}--\n"; > // }// end of if > > }// end of add attach > > function SendMail(){ > $this->Headers .= "\r\n"; The last line above is your problem. Remove it. Cheers, Rob. -- ........................................................... SwarmBuy.com - http://www.swarmbuy.com Leveraging the buying power of the masses! ........................................................... -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php