Re: Send a Html page

From: Date: Mon, 03 Jul 2000 15:03:27 +0000
Subject: Re: Send a Html page
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-4507@lists.php.net to get a copy of this message
What you can do is to create an html file using php first, and then send the HTML file as an attachment. I did this before. Here is an example. <?php $name = "Reuben D. Budiardja" $Address = "Somewhere in US" // Open a file $fp = fopen("scratch.html", "w"); // Writting an HTML code to the file. Note that you can write the php variable also to that file (isn't that cool?) fwrite($fp, " <HTML> <HEAD> <TITLE>An HTML Page that will be sent</TITLE> </HEAD> <BODY BGCOLOR=\"WHITE\"> <P><I>My name is $name</I> <P><B>I live $Address</B> <B><U>You can write any HTML Codes here.</U></B><BR> </BODY> </HTML> "); // end fwrite fclose($fp); // To Send This you need a class that will send it as attachment. // I give the code for the class at the end. Just Copy and paste it // Here is an example on how you will send it include ('CMailFile.inc'); // Specify mail function arguments $sendto = "somewhere@yahoo.com"; $replyto = "anywhere@hotmail.com; $subject = "an HTML file"; $message = "Click on the following attachment to open the HTML page."; $filename = "scratch.html"; $mimetype = "text/html"; // Sending the form as attachment $my_mail = new CMailFile($subject,$sendto,$replyto,$message,$filename,$mimetype); $my_mail -> sendfile(); // End PHP CODE ?> Here is the code for the file CMailFile.inc <?php // Filename: CMailFile.inc // Class for sending file as attachment /* If chunk_split works on your system, change the call to my_chunk_split to chunk_split */ /* Note: if you don't have base64_encode on your sytem it will not work */ // simple class that encapsulates mail() with addition of mime file attachment. class CMailFile { var $subject; var $addr_to; var $text_body; var $text_encoded; var $mime_headers; var $mime_boundary = "==================_846811060==_"; var $smtp_headers; function CMailFile($subject,$to,$from,$msg,$filename,$mimetype = "application/octet-stream", $mime_filename = false) { $this->subject = $subject; $this->addr_to = $to; $this->smtp_headers = $this->write_smtpheaders($from); $this->text_body = $this->write_body($msg); $this->text_encoded = $this->attach_file($filename,$mimetype,$mime_filename); $this->mime_headers = $this->write_mimeheaders($filename, $mime_filename); } function attach_file($filename,$mimetype,$mime_filename) { $encoded = $this->encode_file($filename); if ($mime_filename) $filename = $mime_filename; $out = "--" . $this->mime_boundary . "\n"; $out = $out . "Content-type: " . $mimetype . "; name=\"$filename\";\n"; $out = $out . "Content-Transfer-Encoding: base64\n"; $out = $out . "Content-disposition: attachment; filename=\"$filename\"\n\n"; $out = $out . $encoded . "\n"; $out = $out . "--" . $this->mime_boundary . "\n"; return $out; } function encode_file($sourcefile) { if (is_readable($sourcefile)) { $fd = fopen($sourcefile, "r"); $contents = fread($fd, filesize($sourcefile)); $encoded = my_chunk_split(base64_encode($contents)); fclose($fd); } return $encoded; } function sendfile() { $headers = $this->smtp_headers . $this->mime_headers; $message = $this->text_body . $this->text_encoded; mail($this->addr_to,$this->subject,$message,$headers); } function write_body($msgtext) { $out = "--" . $this->mime_boundary . "\n"; $out = $out . "Content-Type: text/plain; charset=\"us-ascii\"\n\n"; $out = $out . $msgtext . "\n"; return $out; } function write_mimeheaders($filename, $mime_filename) { if ($mime_filename) $filename = $mime_filename; $out = "MIME-version: 1.0\n"; $out = $out . "Content-type: multipart/mixed; "; $out = $out . "boundary=\"$this->mime_boundary\"\n"; $out = $out . "Content-transfer-encoding: 7BIT\n"; $out = $out . "X-attachments: $filename;\n\n"; return $out; } function write_smtpheaders($addr_from) { $out = "From: $addr_from\n"; $out = $out . "Reply-To: $addr_from\n"; $out = $out . "X-Mailer: PHP3\n"; $out = $out . "X-Sender: $addr_from\n"; return $out; } } // usage - mimetype example "image/gif" // $mailfile = new CMailFile($subject,$sendto,$replyto,$message,$filename,$mimetype); // $mailfile->sendfile(); // Splits a string by RFC2045 semantics (76 chars per line, end with \r\n). // This is not in all PHP versions so I define one here manuall. function my_chunk_split($str) { $stmp = $str; $len = strlen($stmp); $out = ""; while ($len > 0) { if ($len >= 76) { $out = $out . substr($stmp, 0, 76) . "\r\n"; $stmp = substr($stmp, 76); $len = $len - 76; } else { $out = $out . $stmp . "\r\n"; $stmp = ""; $len = 0; } } return $out; } // end script ?> Hope that helps Reuben D. Budiardja At 04:15 PM 7/3/2000 +0200, Ghislain Bruyere wrote: >I want to send a html page by email > >Emile Axelrad wrote: > >> > Hello, >> > >> > Have you a exemple to send a html page with php3 ? >> > >> > Have a nice day >> > >> > Thanks >> > >> > Ghislain >> >> <?php >> >> # This is PHP code. >> >> ?> >> >> <html><body>Blah</body></html> >> <!--- This is HTML code ---> >> >> <?php >> >> # This is PHP code again. >> # We can also produce the HTML all using PHP instead of breaking out of >> it... >> >> echo "<html><body>Blah</body></html>"; >> >> # That's it!!! >> >> ?> >> >> - Emile Axelrad > > >-- >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 > > -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~ "The only incomprehensible thing about the universe is that it is comprehensible." - Albert Einstein - ~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^ Reuben Donald Budiardja reubendb@goshen.edu Homepage: http://www.goshen.edu/~reubendb

« previous php.general (#4507) next »