2010-12-02 357 views
1

我以前使用PHP發送過電子郵件,但從未從其他源發送完整的HTML頁面,因此我想知道從哪裏開始以及其他一些事情。PHP從網站發送HTML EMAIL頁面

我做了一些研究,但我的困惑沒有清理任何。

我是否直接獲取網頁內容併發送該內容,或者我可以使用設置僅使用URL? 什麼是我可以使用的最簡單的方法,有人可以給我一個例子嗎? 發送這樣的電子郵件有沒有風險... 5000人,以及如何通過返回鏈接來更改標題數據URL源?

+1

做你想做的發送一個鏈接到頁面,或者你想發送頁面的源? – drudge 2010-12-02 23:52:30

+0

如果您擔心監管問題,可以通過[常量聯繫方式](http://www.constantcontact.com/)等服務處理髮送至列表。然後他們可以管理選擇退出等。 – zanlok 2010-12-03 00:17:17

+0

我對法規有點擔心,但現在我開始通過電子郵件發送頁面源。 – Chenelle 2010-12-03 01:16:25

回答

3

以下代碼行獲取HTML頁面的內容。

$mail->MsgHTML(file_get_contents('contents.html')); 

去這裏的全部細節: http://phpmailer.worxware.com/index.php?pg=exampleagmail

require_once('../class.phpmailer.php'); 
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded 

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch 

$mail->IsSMTP(); // telling the class to use SMTP 

try { 
    $mail->Host  = "mail.yourdomain.com"; // SMTP server 
    $mail->SMTPDebug = 2;      // enables SMTP debug information (for testing) 
    $mail->SMTPAuth = true;     // enable SMTP authentication 
    $mail->SMTPSecure = "tls";     // sets the prefix to the servier 
    $mail->Host  = "smtp.gmail.com";  // sets GMAIL as the SMTP server 
    $mail->Port  = 587;     // set the SMTP port for the GMAIL server 
    $mail->Username = "[email protected]"; // GMAIL username 
    $mail->Password = "yourpassword";   // GMAIL password 
    $mail->AddReplyTo('[email protected]', 'First Last'); 
    $mail->AddAddress('[email protected]', 'John Doe'); 
    $mail->SetFrom('[email protected]', 'First Last'); 
    $mail->AddReplyTo('[email protected]', 'First Last'); 
    $mail->Subject = 'PHPMailer Test Subject via mail(), advanced'; 
    $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically 
    $mail->MsgHTML(file_get_contents('contents.html')); 
    $mail->AddAttachment('images/phpmailer.gif');  // attachment 
    $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment 
    $mail->Send(); 
    echo "Message Sent OK\n"; 
} catch (phpmailerException $e) { 
    echo $e->errorMessage(); //Pretty error messages from PHPMailer 
} catch (Exception $e) { 
    echo $e->getMessage(); //Boring error messages from anything else! 
} 
1

聲明:我還不能發表評論,所以請原諒這是一個 「答案」。

我想你可能要在這裏澄清一下你的目標。

這聽起來像你想要做的是先建立一個基本的刮板,除非你有權訪問原始的html文件。 基本上你可以使用fopen(「Url」,「r」),fsockopen(「url」,80),或者使用curl處理程序來提交頁面請求。

從這裏,根據您的方法,您可以閱讀回覆並生成HTML或多部分電子郵件。

只要添加一個鏈接到電子郵件標題,你可以做到這一點,但我有一種感覺,它不會做你想做的。做到這一點的方式取決於您決定如何發送電子郵件。

0

艾夫斯的回答很好。

有一個問題,你真的想通過電子郵件發送一個html頁面來考慮。

Html電子郵件和Html頁面是兩個完全不同的學校。

Html電子郵件讓你回到10年(hello tables!),你可以做什麼來支持儘可能多的電子郵件客戶端。

它很可能直電子郵件-A-網頁看起來會總廢話收件人電子郵件..

,然後你必須考慮嵌入樣式表,等等。