Re: Help Sending Mail

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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", "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.

Partly, check the $this->Headers .= ... part in the AddAttach method


Cheers,
Rob.

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux