バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

バグ報告 > 管理機能 > メールマガジンが動作しない。

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2007/4/6 19:39
対応状況: −−−
メールマガジンが動作しない。
メールマガジンが動作しません。
時間を設定し、送信準備はできるのですが、時間になっても何も
おきず、そのままです。
配信履歴ページでも配信終了時刻は空、配信件数は0になっています。

EC-CUBE 1.2.0-beta
ゲスト
投稿日時: 2007/4/6 22:38
対応状況: −−−
Re: メールマガジンが動作しない。
こちらは送信はできますが、なぜか抽出したものとは別のメールアカウントに送信されます。
1.2.0になってからですね。
やはりベータ版ということで問題が多いということでしょうか?
ゲスト
投稿日時: 2007/4/6 22:46
対応状況: −−−
Re: メールマガジンが動作しない。
私も一切送信されません。
予約になるだけで、予約時間になっても配信されない状態です。
環境によって症状が違うのでしょうか?

ちなみに、eccube-1.1.0-detaで試してみたところ、
このバージョンは予約ではなく、その場で配信という形ですが、
受信できました。
ramrun
投稿日時: 2007/4/6 23:43
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: メールマガジンが動作しない。
まだよく見ていないんですが、html/admin/mail/index.phpを見ると

//-- 検索開始
if ( ! is_array($objPage->arrErr)) {
		$objPage->list_data['name'] = sfManualEscape($objPage->list_data['name']);
	if ( $_POST['mode'] == 'regist_confirm'){
		$objPage->tpl_mainpage = 'mail/input_confirm.tpl';
	} else if( $_POST['mode'] == 'regist_complete' ){
		lfRegistData($objPage->list_data);
		if(MELMAGA_SEND == true) {
			if(MELMAGA_BATCH_MODE) {
				header("Location: " . URL_DIR . "admin/mail/history.php");
			} else {	
				header("Location: " . URL_DIR . "admin/mail/sendmail.php?mode=now");
			}
			exit;
		} else {
			sfErrorHeader(">> 本サイトではメルマガ配信は行えません。");
		}
	}
}


このコードのadmin/mail/sendmail.php?mode=now部分が実行されるとメルマガが送信されるようです。

えーと条件としては、配信開始時間以降に次のメルマガを予約したタイミングみたい...
ですので、もう1件メルマガを登録したら送信されるんじゃないでしょうか。
もしくはURLにadmin/mail/sendmail.php?mode=nowとしてアクセスすればOKのはず。

cronか何か、もうちょっと別のトリガーが必要ですね。

自分のところでは、会員に1通、ショップ側に1通ずつメールが送信されます。
ただ、テスト用に会員登録していると、2通とも宛先の表示が会員表示になっているので勘違いしているのでは?

会員登録や注文メールは送信者がショップ名、宛先が会員名となるけど、メルマガの場合は送信者がショップメールアドレス、宛先が会員メールアドレスで統一されてませんね(汗)。
fro
投稿日時: 2007/4/7 10:49
対応状況: −−−
新米
登録日: 2007/4/7
居住地:
投稿: 4
Re: メールマガジンが動作しない。
いつもEC-CUBEを使わせていただいております。
大変素晴らしいプロジェクトだと感じています。

直接関係ないかもしれないんですが、当方もメールマガジンの送信がおかしい(配信予約したユーザーとは違うユーザにメールが送信されてしまった)ことがあり、
調査したところ、メールマガジン周りで少し気付いた事があったのでご報告させていただきます。

尚、当方の環境は
FreeBSD
PHP 5.1.4
MySQL 4.1.20
EC-CUBE 1.2.0-beta
です。

なので、上記の環境でのみ発生する事象かもしれません。

html/admin/mail/index.phpの

$dtb_send_history = array();
	if (DB_TYPE == "pgsql") {
		$dtb_send_history["send_id"] = $objQuery->nextval('dtb_send_history', 'send_id');
	}
	$dtb_send_history["mail_method"] = $arrData['mail_method'];
	$dtb_send_history["subject"] = $arrData['subject'];
	$dtb_send_history["body"] = $arrData['body'];
	if(MELMAGA_BATCH_MODE) {
		$dtb_send_history["start_date"] = $arrData['send_year'] ."/".$arrData['send_month']."/".$arrData['send_day']." ".$arrData['send_hour'].":".$arrData['send_minutes'];
	} else {
		$dtb_send_history["start_date"] = "now()";
	}
	$dtb_send_history["creator_id"] = $_SESSION['member_id'];
	$dtb_send_history["send_count"] = $dataCnt;
	$arrData['body'] = "";
	$dtb_send_history["search_data"] = serialize($arrData);
	$dtb_send_history["update_date"] = "now()";
	$dtb_send_history["create_date"] = "now()";
	$objQuery->insert("dtb_send_history", $dtb_send_history );	
	if ( is_array( $search_data ) ){
		foreach( $search_data as $line ){
			$dtb_send_customer = array();
			$dtb_send_customer["customer_id"] = $line["customer_id"];
			$dtb_send_customer["send_id"] = $dtb_send_history["send_id"];
			$dtb_send_customer["email"] = $line["email"];
			
			$dtb_send_customer["name"] = $line["name01"] . " " . $line["name02"];
				
			$conn->autoExecute("dtb_send_customer", $dtb_send_customer );					
		}	
	}	


の部分で、$dtb_send_customer["send_id"] = $dtb_send_history["send_id"];で紐付けしていると思うのですが、
当方の環境だとこれがNULLになってしまい、データベース側ではauto_incrementが適用されているので、1から順に番号が割り振られてしまい、
結果的に間違った番号で紐付けされてメールが送信されてしまう事態が発生していました。

その為、データベース側のauto_incとindexを解除し、
$objQuery->insert("dtb_send_history", $dtb_send_history );

の下に
$dtb_send_history["send_id"] = $objQuery->nextval('dtb_send_history', 'send_id');

を挿入しました。

この結果、正確な紐付けがされるようになり、無事メールマガジンが送信できるようになりました。
ただ、この方法が正しいのかどうかわ正直わからないので、
このあたりは開発チームの皆様にご確認いただければと思います。


(尚、指定時間に送信する場合はCronでの指定が必要です。
 conf.phpにその旨が記載されています。)
ゲスト
投稿日時: 2007/4/7 22:29
対応状況: −−−
Re: メールマガジンが動作しない。
Cron使用可能のサーバーを使用していますが、
Cronの設定はどのように行えばいいのでしょうか?

また、data/conf/conf.phpを
define ("MELMAGA_BATCH_MODE", false);
に変更し、その場で配信するようにするとメールの送信は可能ですが、
配信予定件数が何件であろうと、
配信件数は必ず1件になります。
ゲスト
投稿日時: 2007/4/16 16:56
対応状況: −−−
Re: メールマガジンが動作しない。
当方でも同じ現象です。
配信設定にかかわらず配信されるのは1件のみです。
配信予定件数は正しいのですが、、

どなたかアドバイスを投稿いただけないでしょうか?
宜しくお願いいたします。

1.3.0-beta
PHP:4.4.4
DB:MYSQL 4.1.21
ゲスト
投稿日時: 2007/5/9 21:44
対応状況: −−−
Re: メールマガジンが動作しない。
私も同じように、どのような条件でも
配信予定件数が1件になり、
実際にも1件しか送信されていません。

>fro様

引用:

データベース側のauto_incとindexを解除し、


とありますが、その辺がよく分かりません。
詳しく教えて頂けないでしょうか?

開発チームの皆様、
ご多忙とは思いますが、どうぞ対応をよろしくお願い致します。
ゲスト
投稿日時: 2007/5/10 11:32
対応状況: −−−
Re: メールマガジンが動作しない。
明らかに不具合ですね。
MySQLで運用されている方は対応される迄
メルマガは使用しない方が良いと思います。
ゲスト
投稿日時: 2007/5/21 12:27
対応状況: −−−
Re: メールマガジンが動作しない。
メルマガがきちんと送信されないので、
fro様が書かれた通り、変更したら、きちんと送信されるようになりました。

手順としては、
データベースの$dtb_send_customerと$dtb_send_historyの
引用:

auto_incとindexを解除し、

⇒PhpMyAdminを開き、左側の一覧より『dtb_send_customer』をクリック
⇒『send_id』の『編集』をクリック
⇒『auto_increment』となっている欄のプールダウンより空白を選択後、『保存する』をクリック
これをdtb_send_historyにも同じように適用

html/admin/mail/index.phpを下記のように変更
引用:

$objQuery->insert("dtb_send_history", $dtb_send_history );

の下に
$dtb_send_history["send_id"] = $objQuery->nextval('dtb_send_history', 'send_id');

を挿入しました。


以上で、配信件数・実際に発信される件数共に、
予定したものと一致しました。

fro様、ありがとうございました。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は90,434名です
総投稿数は110,399件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1694
8
red
1571
9
mcontact
1371
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.