2016-09-01 21 views
-1

PHPのメーラーで応答性の高い電子メールテンプレートを使用しています。私のコードはこのように見えます。PHPメーラを使用してレスポンシブな電子メールを送信しよう

$m = new PHPMailer; 
$m ->isSMTP(); 
$m->SMTPAuth=true; 

// debugging 
// $m->SMTODebug=1 
// endof debug 
$m->Host="smtp.gmail.com"; 
$m->Username="[email protected]"; 
$m->Password="blahblah"; 
$m->SMTPSecure='ssl'; 
$m->Port=465; 
$m->isHtml(true); 

$m->Subject = 'Welcome to Efie'; 
$m->msgHTML(file_get_contents('functions/register-email.php'), dirname(__FILE__)); 
$m->FromName="Contact Form Efie"; 
$m->AddAddress($email,$fname); 
if($m->send()) { 
    echo '<p class="errors bg-success text-success">Email Received</p>'; 
} 
+0

レスポンシブメールテンプレートとはどういう意味ですか?電子メールにJavascriptがある場合、ほとんどのメールの読者はJSを無視します。 – Barmar

+0

共有できますが、間違いをしていますか?本質的に私はあなたのサーバーにインストールされているMTA(メール転送エージェント)がないと言っていますが、私は間違っているかもしれません。 – krtek

+0

gmailを使用している場合は、以下のhttps://support.google.com/accounts/answer/6010255に記載されているように安全性の低いアプリにログインできるようにすることをおすすめします。 –

答えて

2

これは、それが応答するとは何ではありません - それはちょうどZurb CSSでCSSメディアクエリを使用しての問題だ、それは任意のJavaScriptを必要としません。

あなたが見ている問題は、file_get_contentsが文字通りファイルの内容を取得し、PHPスクリプトとして実行しないということです。これを解決するにはいくつかの方法があります。変数に代入しながら、

あなたはこのように、ファイルをincludeことができます。

$body = include 'functions/register-email.php'; 
$m->msgHTML($body, dirname(__FILE__)); 
このアプローチの問題は、あなただけのファイルに座ったコンテンツを持つことができないということです

、あなたがreturnに必要なこと値として、ので、あなたのテンプレートのようなものになります:

<?php 
$text = <<<EOT 
<html> 
<body> 
<h1>$headline</h1> 
</body> 
</html> 
EOT; 
return $text; 

より簡単なアプローチは、テンプレートをファイルになり、出力バッファリングを使用することです単純:

ob_start(); 
include 'functions/register-email.php'; 
$body = ob_get_contents(); 
ob_end_clean(); 
$m->msgHTML($body, dirname(__FILE__)); 

とテンプレートは、単純に次のようになります。

<html> 
<body> 
<h1><?php echo $headline; ?></h1> 
</body> 
</html> 

いずれかの方法で、テンプレートファイルは、ローカル変数と補間へのアクセスが動作する必要があります。

evalを使用するなどの他のオプションがありますが、それは非効率であり、容易ではありません。 は間違っています。

出力バッファリングを使用するのが最も簡単ですが、柔軟性と制御性をさらに高めるには、SmartyまたはTwigなどのテンプレート言語を使用します。

レンダリングされたテンプレートを後処理するには、Zurbを使用するにはemogrifierのようなCSSインライナーが必要です。そうしないと、Gmailやその他の低品質のメールクライアントで処理されなくなります。

FYI、このスタック - Smarty、emogrifier、PHPMailer - は私が構築したsmartmessages.netで使用されているものです。

+0

ありがとう、OBの1つは完璧に働いた.. –

+0

喜んで働いて、正しいと私の答えをマークしてください - ダニをクリックしてください! – Synchro

関連する問題