2009-12-31 2 views
3

comme dans asp, nous avons la fonction d'envoyer la page Web complète dans le courrier électronique, qui permettent d'économiser essentiellement beaucoup de temps pour les développeurs dans la création & envoyer emailEnvoi page Web par e-mail en php

voir le code suivant

 <% 
    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 
    %> 

car nous savons que CreateMHTMLBody obtiendra des données de mywebpage.html et l'enverra comme corps d'email.

Je veux savoir si une fonction quelconque (CreateMHTMLBody) est disponible en php?

si non pouvons-nous crate toute fonction si oui, s'il vous plaît donnez-moi quelques conseils.

Merci

Répondre

6

Exemple ci-dessous:

<? 
    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 
    } 
?> 
+1

Cela fonctionne mais ce n'est pas parfait. Y at-il un moyen d'avoir une sorte de "photo" de la page avec les images et la mise en page css extrait? J'ai recherché sur Google une bibliothèque PHP mais je n'ai rien trouvé. – kevin

1

Voici comment:

$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); 

Vous venez d'envoyer e-mail HTML. Pour charger un fichier HTML externe remplacer $ message = '' avec:

$message = file_get_contents('the_file.html'); 
3

Pour ajouter à la réponse d'Erik, si vous souhaitez importer un fichier local (ou à distance!) au lieu de spécifier le code HTML dans le code lui-même, vous pouvez le faire:

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

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

Utilisez les fonctions de tampon de sortie de PHP et incluent la page Web souhaitée. Exemple:

// Start output buffering 
ob_start(); 

// Get desired webpage 
include "webpage.php"; 

// Store output data in variable for later use 
$data = ob_get_contents(); 

// Clean buffer if you want to continue to output some more code 
// in which case it would make sense to use this functionality in the very beginning 
// of your page when no other code has been processed yet. 
ob_end_clean();