tags:

views:

196

answers:

3

as in asp we have function to send complete web page in email, which basically save lot of time for developer in creating & sending email

see the following code

     <%
    Set myMail=CreateObject("CDO.Message")
    myMail.Subject="Sending email with CDO"
    myMail.From="[email protected]"
    myMail.To="[email protected]"
    myMail.CreateMHTMLBody "mywebpage.html",cdoSuppressNone
    myMail.Send
    set myMail=nothing
    %>

as we know that CreateMHTMLBody will get data from mywebpage.html and send it as a body of email.

i want to know does any function like (CreateMHTMLBody) this is available in php ?

if Not can we crate any function if yes, please give me some hints.

Thanks

+1  A: 

Here's how:

$to  = '[email protected]';
$subject = 'A test email!';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Put your HTML here
$message = '<html><body>hello world</body></html>';

// Mail it
mail($to, $subject, $message, $headers);

You've just sent HTML email. To load an external HTML file replace $message = '' with:

$message = file_get_contents('the_file.html');
Erik
+2  A: 

Example below:

<?
    if(($Content = file_get_contents("somefile.html")) === false) {
        $Content = "";
    }

    $Headers  = "MIME-Version: 1.0\n";
    $Headers .= "Content-type: text/html; charset=iso-8859-1\n";
    $Headers .= "From: ".$FromName." <".$FromEmail.">\n";
    $Headers .= "Reply-To: ".$ReplyTo."\n";
    $Headers .= "X-Sender: <".$FromEmail.">\n";
    $Headers .= "X-Mailer: PHP\n"; 
    $Headers .= "X-Priority: 1\n"; 
    $Headers .= "Return-Path: <".$FromEmail.">\n";  

    if(mail($ToEmail, $Subject, $Content, $Headers) == false) {
        //Error
    }
?>
MetaCipher
That works but it's not perfect. Is there a way to have some kind of "photo" of the page with the images and css layout extracted ? I googled for a php library but couldn't find anything.
kevin
+1  A: 

To add to Erik's answer, if you want to import a local (or remote!) file instead of specifying the HTML in the code itself, you can do this:

// fetch locally
$message = file_get_contents('filename.html');

// fetch remotely
$message = file_get_contents('http://example.com/filename.html');
ceejayoz