2012-07-18 46 views
2

我有一個php腳本,它可以讓一些MySQL查詢只是將一些HTML(包含動態數據)寫入頁面。我想要做的就是發送一封電子郵件與這個HTML作爲正文。假設我想要插入到電子郵件正文中的HTML代碼包含在my_html_script.php中,並且我想將它發送給參數以使動態內容正確顯示。如何將PHP腳本包含爲電子郵件正文

我在的Joomla框架,因此代碼發送郵件看起來是這樣的:

$mailer =& JFactory::getMailer(); 
$sender = $from_email; 
$mailer->setSender($sender); 

$email = explode(';',$email); 
for ($i=0;$i<count($email);$i++){ 
    $mailer->addRecipient(trim($email[$i])); 
} 

$body = " 




"; 


$mailer->setSubject('This is the subject'); 
$mailer->setBody($body); 

// Optional file attached 
//$mailer->addAttachment(); 

$send =& $mailer->Send(); 
if ($send !== true) { 
    //die($send->message); 
    echo "<p>email FAILED".$recip."</p>"; 
} else { 
    //mail sent 
    echo "Emailed successfully."; 
} 

所以,基本上我需要包括my_html_script.php HTML輸出到$body字符串變量。我該怎麼做呢?

謝謝!

+2

您的Google搜索有三個詞:'php output buffering'。你可以(如果你必須的話)在調用'include'之前在'$ _GET'中設置必要的值 - 但如果值不是'my_html_script.php',那麼修改'my_html_script.php'只使用'$ _GET'中的值會好得多在父腳本的其他變量中繼承。 – DaveRandom 2012-07-18 16:19:34

+0

@DaveRandom感謝您的提示。我有輸出緩衝工作。不幸的是,不會將my_html_script.php中的MySQL數據插入到HTML中,即使沒有錯誤發生......: -/ – 2012-07-18 19:19:12

回答

5

你只聲明該塊,使用前變量:

ob_start(); 
include ('my_html_script.php'); 
$body = ob_get_clean(); 
+0

@Moak是的。閱讀[手冊](http://php.net/manual/en/function.ob-get-clean.php)。 – DaveRandom 2012-07-18 16:23:04

3

你可以這樣做:

$body = file_get_contents("http://example.com/my_html_script.php?getvar=foo&othervar=bar"); 
+1

真的,你推薦這麼做嗎?好吧,但我期望從一個受人尊敬的40K-er,如你的好自我,更好(我沒有downvote) – DaveRandom 2012-07-18 16:21:49

+0

爲什麼這不是一個好主意? – 2012-07-18 16:25:56

+0

是的,爲什麼這不是一個好主意?它完全符合用戶的需求。 – 2012-07-18 16:28:35

0

我認爲你需要這個,但是......

$body = file_get_contents("path_to_file.php?param1=content&param2=content"); 

你可以用params發送http請求:param1,param2或任何其他。

相關問題