2010-04-29 62 views
2

我爲客戶開發了一個比賽頁面,他們希望客戶收到的電子郵件不僅僅是文本。我使用的教程只在「發送正文消息」內提供了簡單的文本。我需要添加html來感謝客戶輸入,並將圖像引入此電子郵件。如何將HTML格式添加到'基於PHP郵件的Swift郵件教程'?

的代碼是:

//send the welcome letter 
function send_email($info){ 

    //format each email 
    $body = format_email($info,'html'); 
    $body_plain_txt = format_email($info,'txt'); 

    //setup the mailer 
    $transport = Swift_MailTransport::newInstance(); 
    $mailer = Swift_Mailer::newInstance($transport); 
    $message = Swift_Message::newInstance(); 
    $message ->setSubject('Thanks for entering the competition'); 
    $message ->setFrom(array('[email protected]' => 'FromEmailExample')); 
    $message ->setTo(array($info['email'] => $info['name'])); 

    $message ->setBody('Thanks for entering the competition, we will be in touch if you are a lucky winner.'); 

    $result = $mailer->send($message); 

    return $result; 

} 

這function.php片是否工作正常,客戶recieving他們的電子郵件好吧,我只是需要改變

('感謝參加比賽, 我們會聯繫你的,如果你是一個幸運的 贏家。「)

有HTML,而不是...

如果可以的話,請給我提供一個如何將HTML集成到這個函數中的例子。

回答

0

相同的文字會保留還是應該以某種方式進行設計? 編輯您的電子郵件中的HTML需要內嵌CSS樣式,例如:

('<p style="font-size:1.2em; color:#f0f0f0;">Thanks for entering the competition, we will be in touch if you are a lucky winner.</p>') 

,如果你需要一個表只需添加:

('<table style="font-size:1.2em; color:#f0f0f0;"><tr><td>Thanks for entering the competition, we will be in touch if you are a lucky winner.</td></tr></table>') 

或使其更簡單

$message_body' 
<table style="font-size:1.2em; color:#f0f0f0;"> 
<tr> 
<td>Thanks for entering the competition, we will be in touch if you are a lucky winner.</td> 
</tr> 
</table> 
'; 

$message ->setBody($message_body); 

我知道,當我需要發送HTML電子郵件時,我需要將內容類型設置爲HTML,我相信你在以下行上做了

$body = format_email($info,'html'); 

我希望這是你要找的。如果不是讓我知道

+0

Krike嗨, 感謝回去我,我有嘗試了這種在表格代碼中輸入函數的方法,基本上我收到的電子郵件然後向我顯示標籤,而不是使用標籤來設置文本的樣式。你知道其他方式嗎? – Daniel 2010-04-29 15:52:26

+0

沒關係,我搞定了。非常感謝你的幫助克里克。 :-) – Daniel 2010-04-29 16:36:54

+0

很高興你可以使它的工作,我認爲內容類型已全部設置爲HTML,但我想它沒有看到galens回覆。 – Christophe 2010-04-29 16:42:51

1
$message = Swift_Message::newInstance(); 
$message->setContentType('text=html'); 
+0

嗨蓋倫,感謝您的快速回復,我不確定我應該在哪裏插入?我應該刪除任何行並將其替換爲您的建議嗎? – Daniel 2010-04-29 15:54:35

+0

編輯我的答案,你應該看看現在在哪裏添加它 – Galen 2010-04-29 16:14:54

+0

偉大的蓋倫,非常感謝。 :-) – Daniel 2010-04-29 16:36:35

4

你也可以添加'text/html的'到setBody(ref):

->setBody($this->renderView('YouBundleName:Default:email.html.twig'), 'text/html');