下記スレッドを参考にさせて頂き、退会時の自動配信を行ったのですが、inf61様も書いておられますが、メール送信先とメール本文の宛名がログインしている会員と別の会員(顧客IDが一番若い会員の名前)が表示がされてしまいます。
確認画面や、実際に削除される会員はログインしているものになります。
対処方法をご教示頂ければ幸いです。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=9519&forum=11下記ソースになります。
LC_Page_Mypage_Refusal.php
case 'complete':
$objCustomer = new SC_Customer_Ex();
$this->lfDeleteCustomer($objCustomer->getValue('customer_id'));
$mailHelper = new SC_Helper_Mail_Ex();
$mailHelper->sfSendRefusalMail($objCustomer->getValue('customer_id'),
SC_MobileUserAgent_Ex::isMobile() ? 2 : 1);
$objCustomer->EndSession();
SC_Response_Ex::sendRedirect('refusal_complete.php');
}
SC_Helper_Mail.php
/**
* 退会メールを送信する。
*
* @param string $secret_key 会員固有キー
* @param integer $customer_id 顧客ID
* @param boolean $is_mobile false(default):PCアドレスにメールを送る true:携帯アドレスにメールを送る
* @return boolean true:成功 false:失敗
*/
function sfSendRefusalMail($secret_key, $customer_id = '', $is_mobile = false) {
// 会員データの取得
if(SC_Utils_Ex::sfIsInt($customer_id)) {
$arrCustomerData = SC_Helper_Customer_Ex::sfGetCustomerDataFromId($customer_id);
}else{
$arrCustomerData = SC_Helper_Customer_Ex::sfGetCustomerDataFromId('', "secret_key = ?", array($secret_key));
}
if(SC_Utils_Ex::isBlank($arrCustomerData)) {
return false;
}
$CONF = SC_Helper_DB_Ex::sfGetBasisData();
$objMailText = new SC_SiteView_Ex();
$objMailText->assign('CONF', $CONF);
$objMailText->assign("name01", $arrCustomerData['name01']);
$objMailText->assign("name02", $arrCustomerData['name02']);
$objMailText->assign('uniqid', $arrCustomerData['secret_key']);
$objMailText->assignobj($toRegisted);
$objMailText->assignobj($arrCustomerData);
$objMailText->assignobj($this);
$objHelperMail = new SC_Helper_Mail_Ex();
$subject = $objHelperMail->sfMakeSubject('退会のご確認', $objMailText);
$toCustomerMail = $objMailText->fetch("mail_templates/refusal_mail.tpl");
$objMail = new SC_SendMail();
$objMail->setItem(
'' // 宛先
, $subject // サブジェクト
, $toCustomerMail // 本文
, $CONF["email03"] // 配送元アドレス
, $CONF["shop_name"] // 配送元 名前
, $CONF["email03"] // reply_to
, $CONF["email04"] // return_path
, $CONF["email04"] // Errors_to
, $CONF["email01"] // Bcc
);
// 宛先の設定
$to_addr = $arrCustomerData['email'];
$objMail->setTo($to_addr, $arrCustomerData["name01"] . $arrCustomerData["name02"] ." 様");
$objMail->sendMail();
return true;
}
refusal_mail.tpl
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
※本メールは、
<!--{$CONF.shop_name}-->より会員登録を希望された方に
お送りしています。
もしお心当たりが無い場合は、
その旨<!--{* 問い合わせ受付メール *}--><!--{$CONF.email02}-->まで
ご連絡いただければ幸いです。
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
<!--{$name01}--><!--{$name02}--> 様
<!--{$CONF.shop_name}-->でございます。
退会処理がが完了いたしました。
<!--{$CONF.shop_name}-->をご利用いただき誠にありがとうございました。
またのご利用を心よりお待ち申し上げます。
よろしくお願いいたします。
EC-CUBEバージョン 2.11.5
PHPバージョン PHP 5.4.45
DBバージョン MySQL 5.5.38-log