質問 > フロント機能 > お問い合わせに添付ファイル |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
muro |
投稿日時: 2010/1/23 15:00
対応状況: 確認中
|
常連 登録日: 2008/10/12 居住地: 投稿: 33 |
お問い合わせに添付ファイル お問い合わせページから添付ファイルの付いたメールを送信するには
どのようにすればよいでしょうか? 公式ガイドブックのP110「添付ファイル機能をつける」を参考にしていますが、添付ファイルがうまく渡せません。。。 どなたお分かりの方がおられましたらぜひともご教授いただければ幸いです。 どうぞよろしくお願いいたします。 --- EC-CUBEバージョン 2.4.2 PHPバージョン PHP 5.2.5 DBバージョン PostgreSQL 8.2.4 |
yokoshima |
投稿日時: 2010/1/23 15:14
対応状況: −−−
|
一人前 登録日: 2009/1/6 居住地: 渋谷区恵比寿西 投稿: 113 |
Re: お問い合わせに添付ファイル 下記の記事が解決の糸口にならないでしょうか。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=4884&forum=10&post_id=22939
|
muro |
投稿日時: 2010/1/23 15:25
対応状況: −−−
|
常連 登録日: 2008/10/12 居住地: 投稿: 33 |
Re: お問い合わせに添付ファイル こちらの記事も参考にさせていただきました。
フォームにマルチパートをつけるとどうしても渡せなくて。。。 困っています。 |
tonton |
投稿日時: 2010/1/23 16:39
対応状況: −−−
|
仙人 登録日: 2008/8/14 居住地: 投稿: 437 |
Re: お問い合わせに添付ファイル こんにちは。
私もそのうちやってみようと思っているのですが、tips32のコードをみてEC-CUBEのクラスを参照しつつ、 http://www.komonet.ne.jp/~php/program/fmail/chap2.htm こちらのサイトは参考になりませんか? FORMで添付ファイルを渡すのはよくあるので、EC-CUBEで渡せないとすると、エンコードの処理とかのあたりを見比べてみたらどうでしょうか。 はずしていたらごめんなさい。 |
seasoft |
投稿日時: 2010/1/23 17:06
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: お問い合わせに添付ファイル > 公式ガイドブックのP110「添付ファイル機能をつける」を参考にしていますが、添付ファイルがうまく渡せません。。。
私は、公式ガイドブックを見たことが無いので P110 なのか分かりませんが、Tips_032 というものをベースに実装可能でしたよ。
|
muro |
投稿日時: 2010/1/23 17:51
対応状況: −−−
|
常連 登録日: 2008/10/12 居住地: 投稿: 33 |
Re: お問い合わせに添付ファイル ページでいってもそうですね。。。
Tips32というやつでした。 Tips32を参考にしてデータベースに登録する部分以外をはめこみました。 SC_SendMail.phpに添付ファイル送信用の処理 getFILEHeader()と sendFileMail()をつけたして、 LC_Page_Contact.phpの IfSendMail()にある $objMail->sendMail();を $objMail->sendFileMail($filename);にしました。 $filenameの中身が受け取れていないので、 メールは送信されますが、添付がないという状態です。 SC_SendMail.phpに追加した処理 // ヘッダーを返す★追加 function getFILEHeader() { $arrHeader = $this->getBaseHeader(); $arrHeader['Content-Type'] = "text/plain; charset=\"ISO-2022-JP\""; $arrHeader['Content-Transfer-Encoding'] = "7bit"; return $arrHeader; } // 添付ファイル付きメール送信を実行する★追加 function sendFileMail($filename) { $this->objMailMime = new Mail_mime(); $this->objMailMime->setTXTBody(mb_convert_encoding($this->body, 'JIS')); for($i = 0; $i < count($filename); $i++){ if($filename[$i] !== ""){ $this->objMailMime->addAttachment($filename[$i], 'application/octet-stream', mb_convert_encoding($filename[$i], 'ISO-2022-JP', 'SJIS')); } } $param = array( "text_charset" => "iso-2022-jp", //TEXT用 "text_encoding" => "base64" //TEXT用 ); $this->body = $this->objMailMime->get($param); $header = $this->objMailMime->headers($this->getFILEHeader()); $result = $this->objMail->send($this->getRecip(), $header, $this->body); if (PEAR::isError($result)) { GC_Utils_Ex::gfPrintLog($result->getMessage()); GC_Utils_Ex::gfDebugLog($header); return false; } return true; } |
seasoft |
投稿日時: 2010/1/23 17:57
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: お問い合わせに添付ファイル Tips_032 では、商品詳細のページクラスに手を加えていたはずです。
(記憶で書いています。違っていたらゴメンなさい。) 同様のカスタマイズが、LC_Page_Contact に必要かと思います。
|
muro |
投稿日時: 2010/1/23 20:43
対応状況: −−−
|
常連 登録日: 2008/10/12 居住地: 投稿: 33 |
Re: お問い合わせに添付ファイル 受け取って処理することはできましたー。
でも送れない・・・エンコードの処理部分ですかね。。。 メールとかこのへん苦手でして。。。 いろいろ探ってみます! ありがとうございました。 |
tonton |
投稿日時: 2010/1/24 0:25
対応状況: −−−
|
仙人 登録日: 2008/8/14 居住地: 投稿: 437 |
Re: お問い合わせに添付ファイル メールヘッダーをセットしている部分の、content-typeがtext/plainになっているので、multipart/mixedにしないといけないのでは。
あとは、商品ページからセッションで引き回すわけではないので、単純に添付ファイルをつけてお問い合わせを完了し、メールで受け取るのであれば、SC_SendMail.phpのヘッダーの処理部分、 // ヘッダーを返す function getTEXTHeader() の下あたりにgetMULTIHeader()などとしてmultipartのヘッダ追加処理をつけたし、 // TXTメール送信を実行する function sendMail() をコピーして、function sendMultiMail()を作成、あとは、コンタクトメールの送信処理の部分(SC_Helper_Mail.phpのsfSendTemplateMail内)で、$uplaodfileを送信項目に追加して、$uplaodfileがあれば、multiの処理、という分岐を入れれば、もう少しシンプルに出来そうな気もします。 テストはしていないので、他にも何か処理が要るかも知れませんが・・・ |
george |
投稿日時: 2010/6/11 13:51
対応状況: −−−
|
半人前 登録日: 2010/3/30 居住地: Niigata 投稿: 12 |
Re: お問い合わせに添付ファイル 皆さんの記事を参考にしながら作業しているのですが、どうにもいかなくなってしまったので教えて下さい。
LC_Page_Contact.phpのprocessに添付ファイルを保管しておく変数を用意し、 $upfile01 = $_FILES['upfile01']['tmp_name']; $upfile_name01 = $_FILES['upfile01']['name']; $upfile_type01 = $_FILES['upfile01']['type']; 同じく、LC_Page_Contact.phpのlfSendMailに、ヘッダ追加処理、 if(file_exists($upfile01)){ $fp = fopen($upfile01, "r") or die("error"); $contents = fread($fp, filesize($upfile01)); fclose($fp); $f_encoded = chunk_split(base64_encode($contents)); $msg .= "\n\n--$boundary\n"; $msg .= "Content-Type: " . $upfile_type01 . ";\n"; $msg .= "\tname=\"$upfile_name01\"\n"; $msg .= "Content-Transfer-Encoding: base64\n"; $msg .= "Content-Disposition: attachment;\n"; $msg .= "\tfilename=\"$upfile_name01\"\n\n"; $msg .= "$f_encoded\n"; $msg .= "--$boundary--"; $toCustomerMail .= $msg; を追加しました。 SC_SendMail.phpに、添付ファイルを送信する機能(muroさんのプログラムを参考にしました)を加えました。 LC_Page_Contact.phpの受け取る所でつまづいていると思うのですが・・・ ご教授の程、よろしくお願いします。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |