データベースから一気に差し込み≪親記事へ【未分類】spok■データベース連動データベースから、データをフェッチ(Fetch)した場合、多くの場合、次のようなデータ構造になっているはずです。(もちろん、フィールド名やデータは例です。'tel'=>'092-0000-0000',),);このデータを一気に、Qdmailに差し込むことで、上記のデータの場合、4人にそれぞれ個人別にカスタマイズしたメールを一度に送信することができます。して、宛先を指定する引数に、$dataをします。件名や本文で、置き換えたい項目を%記号で囲みます。サンプルをみるのが早いでしょう。上記の$dataが入っているものとします。上記の$dataのメールアドレス部分を自分が管理している別のメールアドレスに入れて試してください。require_once('qdmail.php');$subject="こんにちは、%name%さん。";$body="%name%さんの登録内容をお送りします。%tel%専用URL:http://example.com/login/?id=%id%このように、qd_send_mailでは、簡単にインサートメールを送信することができます。array('type'=>'text','option'=>array('simpleReplace'=>true));の部分が、SimpleReplace機能をONにする箇所です。フィールド名と連動%でデータベースのフィールド名を囲めば(%フィールド名%)、自動的にリプレースされるわけですが、どのフィールドのデータをメール宛先の送信者表示名にするか、どれが送信先のメールアドレスなのかを指定する必要があります。デフォルトでは、次のようになっています。その時、SimpleReplaceは、正常に動作しますが、Qdmailは肝心の送信先アドレスを見失ってしまいます。mail,nameではなない場合は、次の指定を加えてください。深夜0時44分メールを一通しか送らないのですが、メール内で変数との置き換えをしたいのです。同じエラーになります。'hoge@example.com',));この内容で、上記エラーを吐きます。午後4時21分ほげおさんこのエラーは、メールアドレスがうまく受け渡しされていないために起きるエラーです。こちらでは、再現しませんので、できましたら、うまくいかない場合の該当部分のソースコードをお教えいただければ幸いです。内容は変わっていますが、以下のような感じです。適当に補完して送信したところ、特に異常なく送信できました。'address@example.com';//実際は実在アドレスにしています。正しく定義されていないように思います(想像)。E_ALLとした上で、実行してみてください。正しく定義されているかどうかご確認ください。'from@example.com'などと、メールアドレスの形式で直接的に指定してみてください。->simpleReplace(true);が必要ですので、お試し下さい。その上で、まだ正常送信できない場合は、お手数ですが、今一度ご連絡ください。指定のほうかも知れませんので、$toの内容もご確認ください。見る限り、ソースコードがちょっと足りないように思います。次回ご連絡いただくときは、コードのコピペの方が原因を特定しやすいので、できましたら、コピペでお願いします。非公開コメントにチェックをしていただくと、私以外にはみえませんので、メルアドがそのままでも、大丈夫です(絶対的な保証はできませんが)。内容がなくなったためのようです。初歩的なミスで申し訳ありません。現在は、ちゃんとメールできているようです。ちなみに、以前はSmartyのテンプレートファイルにメール内容を書いて送るということをしていました。中身をforeachで回したり、ifで回したりしたい。・改行を入れると、改行前のスペースがそのままメールに。ソースの方でスペースをなくすと、ソースがぐちゃぐちゃに。いう点が少し気にはなっているので。午後11時17分ほげおさんメールが送れるようになってよかったです。私の理解不足で申し訳ありませんが、以下の事は、何をしようとしているのか、ちょっとわからないので、とんちんかんなお応えかもしれませんが、回答しておきます。するのでは不十分でしょうか。中身をforeachで回したり、ifで回したりしたい。http://jp.php.net/manual/ja/function.eval.phpを使用するのでは不足でしょうか。http://sunset.freespace.jp/smarty/SmartyManual_2-6-7J_html/api.fetch.htmlなどは、画面出力を変数に取り込めるようですので、これでは不足でしょうか。>・改行を入れると、改行前のスペースがそのままメールに。ソースの方でスペースをなくすと、ソースがぐちゃぐちゃに。すいませんが、どのような現象を示しているのかわかりませんので、実例で説明していただければ幸いです。午前10時44分データベースから一気に差し込む場合、BCCやCCの設定はどうすればいいのでしょうか?「mail」の箇所をCC・BCC用のメールアドレスにすれば送信出来ますが、TO形式で送信されます。送信方法はqd_send_mail方式で、バージョンは1.1.5bを利用しています。午前11時49分つまり、ccやbccもデータベースから突っ込みたいのか、それとも、常に管理者にbccするような機能がいいのか、ということです。現行バージョンで、できることできないことがあり、ちょっとした改造で、できること、できないことがあります。「どのtoの宛先でも同じcc,bcc」です。用途として「管理者にコピーメールを送信」みたいな事に使いたいと思いまして。bccは常に管理者に連絡する方法でいけるかと思いますが、ccは転送先のメールアドレスがメールソフトで表示されて欲しいので、cc送信も出来ればと表います。午後2時19分ktさん現行バージョンでは、simpleReplace時に、できるのは、常にあるアドレスにBccだけです。CCについては、現行バージョンでは対応していません。需要があることがわかりましたので、次回更新時には、ちょっと考えてみます。常にbccは以下を参考にしてください。通常のbcc,ccメソッドは、simpleReplace時にはセキュリティ上、効かなくなるようになっていますが、allwaysBccメソッドは使用可能です。array('type'=>'text','option'=>array('simpleReplace'=>true,'allwaysBcc'=>'admin@example.com'));ただし、試してみるとわかりますが、simpleReplaceを使って、allwasyBccすると、差し込んだすべてのパターンのメールをbccで受けますので、多くの通数の差し込みメールを一気に送ると、かなりの数のメールを受け取ることになることにご留意ください。以降にて修正しました。代わりに、cc,bccとしていただければ、大丈夫だと思います。今まで通り、allwaysBccも使用可能です。動作テストさせていただきました。問題なく送信できました。要望を実現していただき、ありがとうございます。細かい事ですが、bccとcc両方入力していないと、エラーになります。私はシステムと連動している為、以下のように記述しています。'bcc'=>$bcc_mail,'cc'=>array($cc_mail,$cc_name)これらはメール送信前に入力値を確認して振り分ければいい事ですが、もし出来たら「bccかccの入力値が無くても送信できる」という形であればより使い勝手が良くなると思いました。午後4時24分ktさん1.1.8b以降にバージョンアップした上で、下記をお試し下さい。デフォルトでは、空文字やnullがアドレスに入力されると、不正なメールアドレスとして認識するようになっています。それをユーザーの設定で変更する方法はいくつかありますが、推奨するのは、アドレスバリデーション(判定)の変更です。http://hal456.net/qdmail/validationのサンプル2を参考にしてください。array('type'=>'text','option'=>array('varidateAddressRegex'=>'/([^@]+@[^@]+)|(^$)/','simpleReplace'=>true,));ということです。これにccなり、bccを付け加えてみて下さい。この方式はメールアドレス全般にかかる判定の変更ですので、toやfromに空文字、nullが入力された場合には、別のエラーがでることになります。返信が遅れましたが、、確認させていただきました。希望通りの処理になりました。何かありましたら、よろしくお願いします。午後4時58分メール送信するプログラムを組む時、Qdmailを使わせていただいております。便利なライブラリ、有難うございます。addressFieldメソッドに関してなのですが、OOPで利用する際、fromやtoの指定を行う前に指定しなければならない、というルールに気がつくのに小一時間かかってしまいました。よろしければマニュアルページに、記載していただけると幸いです。午後5時05分はじめまして。下記のようなやり方で差し込み送信しようとした場合、どのようなコーディングにすればよいかあれこれ悩んでしまっております。初歩的なところでつまづいてしまい、申し訳ないのですがアドバイスいただけないでしょうか。->send();/*メール送信ここまで*/sample.txtの中身-----------------------------------ここにメール本文を書きます。←差し込みたいところ-----------------------------------※ちなみに、上記の状態ではtoアドレス宛にメール自体は送信されます。http://hal456.net/qdmail/052/tb/※お手数ですが、SPAM防止のためURLの後ろに「fAu」を追加してください。1.44.InfomationPHPのマルチバイトメールライブラリ、Qdmailです。日本語をはじめ各国語で簡単に添付ファイルやHTMLメールを送信することができます。spok他にもソフト公開しています。関数型でSMTP送信デコメテンプレート機能デコメテンプレートで送信する。