On Mon, 2007-12-10 at 21:05 -0800, Jim Lucas wrote:
> Robert Cummings wrote:
> > 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", "[EMAIL PROTECTED]", "Test Mail", "Hello,
> >> this is my first message");
> >> $Mail->AddTo("[EMAIL PROTECTED]", "Ahmed");
> >> $Mail->AddCc("[EMAIL PROTECTED]", "Me2resh");
> >> $Mail->AddBcc("[EMAIL PROTECTED]", "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.
>
> Partly, check the $this->Headers .= ... part in the AddAttach method
Yeah, he's all over the place with his line endings. Personally, I use
an array to track the headers and use implode in one shot before
sending.
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