バージョン選択

フォーラム

メニュー

オンライン状況

49 人のユーザが現在オンラインです。 (39 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 48
red もっと...

サイト内検索

質問 > フロント機能 > お問い合わせに添付ファイル

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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


----------------
+++++++++++++++++++++++++++++++++++++++++++++++++++
EC構築 EC製作 ECコンサルティング
株式会社マッジ

+++++++++++++++++++++++++++++++++++++++++++++++++++

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 というものをベースに実装可能でしたよ。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

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 に必要かと思います。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

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 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,820名です
総投稿数は109,982件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1290
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.