2010-12-20 11 views
0

私はメールのコンセプトをやっています。私は電子メールで動的な添付ファイルを送信したいと思います。 実際にユーザーは添付ファイル付きのメールを受信します。この添付ファイルは動的になります。 email.iのための動的な添付ファイルを作成する方法はこれを試みた。使用しません。誰か助けてください。PHPを使って動的添付ファイルを作成する

私が最終的に私はこの$mail->AddAttachment("$myfile");

が、このようなメールの添付ファイルを追加しました

$myfile = "attachments.txt"; 
$fh = fopen($myfile, 'w') or die("can't open file"); 
$stringData = str_replace("<<name>>", $fetuser[firstname], $fh); 
//echo $fetuser[firstname];exit; 
fwrite($fh, $stringData); 
$stringData = str_replace("<<designid>>",$_SESSION[designid], $fh); 
fwrite($fh, $stringData); 
$stringData = str_replace("<<designname>>", $fetch_designname[designtype], $fh); 
fwrite($fh, $stringData); 
$stringData = str_replace("<<orderno>>", $ordno, $fh); 
fwrite($fh, $stringData); 
fclose($fh); 

としてこのファイルを更新しました「コンテンツ

User Name: <<name>> 
Designid:<<designid>> 
Designname:<<designname>> 
Orderid:<<orderid>> 

とattachments.txt'fileを持っています正しく動作していません。誰か助けてください。

答えて

3

ファイルハンドラをstr_replaceに渡すことはできません。最初に内容を読み、プレースホルダーを置き換え、ファイルをもう一度書き込んでください。また、テンプレートを含む同じファイルにこのファイルを書き込むと、2回目にメールを送信するときにテンプレートにはなりませんが、それについては何か考えていると思います。

EDIT:なぜあなたは戻って、ファイルをディスクに書き込むために悩ませている

$text = file_get_contents($templateFile); 

// perhaps some error handling here 

$text = str_replace(array('<<name>>', '<<designid>>', '<<designname>>', '<<orderid>>'), 
        array($fetuser[firstname], $_SESSION[designid], $fetch_designname[designtype], $ordno), 
        $text); 

file_put_contents($attachmentFile, $text); 
+0

ご返信ありがとうございます。私はこれを試みます。 –

+0

はい。あなたが正しいです。それはもはやテンプレートにはなりません。しかし、私はそれがテンプレートのようになりたい。どのようにすることができます? –

+0

さて、テンプレートとして1つのファイルを使用し、そこから読み取るだけで、別のファイル(または複数のファイル)を添付ファイルとして使用してください。また、@symcbeanが示唆しているように、添付ファイルを最初にディスクに書き込まずに追加することも可能です。あなたはそれを行う方法を見つけなければならないでしょう。とにかく、ここでの鍵はテンプレートファイルに書き込むことではありません。 –

1

だから、あなたはこのようないろいろ書いを行うことができますか?それは必要はありません。

$ mail-> AddAttachment( "$ myfile");

$ mailがインスタンス化されているかどうかを私に教えてください。

が、これは正しく無意味文をだ

が機能していません。エラーメッセージや、結果が期待していたものとどのように異なるかについての詳細を提供してください。

関連する問題