質問 > 管理機能 > メール送信処理について |
管理機能
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
Rights |
投稿日時: 2021/6/22 15:17
対応状況: −−−
|
一人前 登録日: 2019/3/12 居住地: 投稿: 99 |
Re: メール送信処理について public function sfSendMailmagazine($send_id)
{ $objQuery =& SC_Query_Ex::getSingletonInstance(); $objDb = new SC_Helper_DB_Ex(); $objSite = $objDb->sfGetBasisData(); $objMail = new SC_SendMail_Ex(); $where = 'del_flg = 0 AND send_id = ?'; $arrMail = $objQuery->getRow('*', 'dtb_send_history', $where, array($send_id)); // 対象となる$send_idが見つからない if (SC_Utils_Ex::isBlank($arrMail)) return; // 送信先リストの取得 $arrDestinationList = $objQuery->select( '*', 'dtb_send_customer', 'send_id = ? AND (send_flag = 2 OR send_flag IS NULL)', array($send_id) ); // 現在の配信数 $complete_count = $arrMail['complete_count']; if (SC_Utils_Ex::isBlank($arrMail)) { $complete_count = 0; } foreach ($arrDestinationList as $arrDestination) { // お名前の変換 $customerName = trim($arrDestination['name']); $subjectBody = preg_replace('/{name}/', $customerName, $arrMail['subject']); $mailBody = preg_replace('/{name}/', $customerName, $arrMail['body']); $objMail->setItem( $arrDestination['email'], $subjectBody, $mailBody, $objSite['email03'], // 送信元メールアドレス $objSite['shop_name'], // 送信元名 $objSite['email03'], // reply_to $objSite['email04'], // return_path $objSite['email04'] // errors_to ); // テキストメール配信の場合 if ($arrMail['mail_method'] == 2) { $sendResut = $objMail->sendMail(); // HTMLメール配信の場合 } else { $sendResut = $objMail->sendHtmlMail(); } // 送信完了なら1、失敗なら2をメール送信結果フラグとしてDBに挿入 if (!$sendResut) { $sendFlag = '2'; } else { // 完了を 1 増やす $sendFlag = '1'; $complete_count++; } sned_flag = '1' と $complete_countの増分処理を同じ箇所で行っていることから、 ●現在「dtb_send_history」に残っている「complete_count」に残っている送信数分、「dtb_send_customer」で「send_flag」が"2"だった配信先に送信して送信済みになった。 という解釈で良いのでしょうか? |
フラット表示 | 前のトピック | 次のトピック |
題名 | 投稿者 | 日時 |
---|---|---|
メール送信処理について | Rights | 2021/6/21 17:08 |
Re: メール送信処理について | Rights | 2021/6/22 14:52 |
» Re: メール送信処理について | Rights | 2021/6/22 15:17 |
Re: メール送信処理について | coremobile | 2021/12/11 20:07 |