PHP_CGI: 2006年12月アーカイブ

zencart不達メール

|

v1.2では、OSCと同じ。
V1.3では、

/includes/classes/class.phpmailer.phpの458行目

$rt = @mail($to, $this->EncodeHeader($this->Subject), $body, $header, "-fメアド");

サーバー設定
/etc/mail/trusted-usersにapacheを追加

oscommerce不達メール

|

サーバー設定
/etc/mail/trusted-usersにapacheを追加

不達メールの通知先を変更する件で、以下のファイルの変更方法ですが、
catalog/includes/classes/email.php
admin/includes/classes/email.php

例えば、次のように編集すればいいと思います。

(変更前) 514行目
------------------------------------------------------------
if (EMAIL_TRANSPORT == 'smtp') {
return mail($to_addr, $subject, $this->output, 'From: ' . $from . $this->lf . 'To: ' . $to . $this->lf . implode($this->lf, $this->headers) . $this->lf . implode($this->lf, $xtra_headers));
} else {
return mail($to, $subject, $this->output, 'From: '.$from.$this->lf.implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers));
}
------------------------------------------------------------

(変更後)
------------------------------------------------------------
$bounce_mail_option = '-f' . (defined('BOUNCE_EMAIL_ADDRESS') ? BOUNCE_EMAIL_ADDRESS : STORE_OWNER_EMAIL_ADDRESS);
if (EMAIL_TRANSPORT == 'smtp') {
return mail($to_addr, $subject, $this->output,
('From: ' . $from . $this->lf . 'To: ' . $to . $this->lf . implode($this->lf, $this->headers) . $this->lf . implode($this->lf, $xtra_headers)),
$bounce_mail_option
);
} else {
return mail($to, $subject, $this->output,
('From: ' . $from . $this->lf . implode($this->lf, $this->headers) . $this->lf . implode($this->lf, $xtra_headers)),
$bounce_mail_option
);
}
------------------------------------------------------------
↑ 2007/07/20訂正

-------------------------------------------------

不達メールについて
メンバー登録や注文後に送られる自動送信のメールが不達の場合に指定
のメールアドレスに帰ってくるように出来たらと思うのですが?
mb_send_mailのoptionにreply to:を追加すればいいのでは。
でも相手先のサーバーによってはreplyを見ない場合もあるので
万能ではないはず。
sendmailを使っているなら、-f <<送信元アドレス>>が指定できます。
具体的には、PHP の mail() 関数の5番目の引数で指定できますので、
http://jp.php.net/manual/ja/function.mail.php (例 3)
catalog/includes/classes/email.php
admin/includes/classes/email.php
に少し手を入れれば、通知先を変更できます。

どこかに(例えば [catalog|admin]/includes/application_top.php)
define('EMAIL_BOUNCE', 'webmaster@example.com');
のように転送先を指定する行を挿入して、

以下のファイルの mail() 関数を呼んでいる部分を書き換えます。
catalog/includes/classes/email.php
admin/includes/classes/email.php

例) catalog/includes/classes/email.php L.468
---------------------------------------------------
return mail($to,
$subject,
$this->output,
'From: '.$from.$this->lf.implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers),
"-f".EMAIL_BOUNCE
);
---------------------------------------------------
ただし、これはメールサーバにパラメータを受け渡すものなので、
メールサーバによっては、うまく働かないかもしれません。

-----------------------------
http://blog.buchanweb.net/?itemid=59

zencart1.3用friendly URL

|


/includes/functions/html_output.php

        $link .= 'index.php?main_page='. $page . "&" . zen_output_string($parameters);
      } else {
        $link .= 'index.php?main_page=' . $page;
      }

上記4行を

-----------------------------------------------------

 if ((USER_FRIENDLY_URLS_REWRITE == 'true') &&
     (!ereg('language', $parameters)) &&
     (!ereg('manufacturers_id', $parameters)) &&
     (!ereg('contact_us', $page)) &&
     (!ereg('review', $page)) &&
     (!ereg('review', $parameters))
    ) {

   $parameters = str_replace('&sort=', '/sort', $parameters);
   $parameters = str_replace('&page=', '/page', $parameters);
   $parameters = str_replace('&filter_id=', '/filter', $parameters);
   $parameters = str_replace('disp_order=', 'display', $parameters);

   if (($page == "index") && (ereg('cPath', $parameters))){
  $cnum = str_replace('cPath=', 'cid', $parameters);
  $parameters = str_replace("cPath=", "categories/", $parameters); 
  $link .= $parameters . '.html';
  require("url_data.php");
  if ($urlrpl[$cnum] != NULL) {
      $link = ereg_replace("categories/[0-9_]{1,}", "categories/$urlrpl[$cnum]", $link);
  }
   }

          elseif (($page == "product_info") && (ereg('products_id', $parameters))){
  $pnum = str_replace('products_id=', 'pid', $parameters);
  $pnum = ereg_replace('cPath=[0-9_]{1,}&', '', $pnum);
  $parameters = str_replace("products_id=", "products/", $parameters);
  $parameters = ereg_replace('cPath=([0-9_]{1,})&', '', $parameters);
  $parameters = str_replace('action=notify&','notify', $parameters);
  $parameters = str_replace('action=add_product&','add', $parameters);
  $parameters = str_replace('&reviews_id=','review/', $parameters);
  $parameters = str_replace('&action=notify_remove','notify_remove', $parameters);
  $parameters = str_replace('&action=notify','notify', $parameters);
  $link .= $parameters . '.html';
  require("url_data.php");
  if ($urlrpl[$pnum] != NULL) {
      $link = ereg_replace("products/[0-9]{1,}", "products/$urlrpl[$pnum]", $link);
  }
   }

   elseif ($page == 'redirect') {
  if (ereg('banner', $parameters)){
  $parameters = str_replace('action=banner&goto=', 'redirect_banner', $parameters);
  $link .= $parameters . '.html';
  }
  if (ereg('url', $parameters)){
  $parameters = str_replace('action=url&goto=', 'redirect_url-', $parameters);
  $link = $parameters;
  }
   }

   elseif ($page == 'tell_a_friend') {
  $parameters = str_replace('to_email_address=','/to_', $parameters);
  $parameters = str_replace('products_id=','/products', $parameters);
  $parameters = str_replace('action=process&','/send', $parameters);
  $link .= $page . $parameters . '.html';
   }

          elseif (
       ($page == "products_all") or
  ($page == "products_new") or
  ($page == "featured_products") or
  ($page == "specials)")
       ){

   $link .= $page ."/" . $parameters . '.html';
          } else {

        $link .= 'index.php?main_page='. $page . "&" . zen_output_string($parameters);

 } 

    } else {
        $link .= 'index.php?main_page='. $page . "&" . zen_output_string($parameters);
 }
      } else {
 if (USER_FRIENDLY_URLS_REWRITE == 'true') {
          if (
                ($page == 'login') or
                ($page == 'advanced_search') or
                ($page == 'specials') or
                ($page == 'featured_products') or
                ($page == 'products_new') or
                ($page == 'products_all') or
                ($page == 'shippinginfo') or
                ($page == 'privacy') or
                ($page == 'conditions') or
                ($page == 'contact_us') or
                ($page == 'gv_faq') or
                ($page == 'site_map') or
                ($page == 'logoff') or
                ($page == 'account') or
                ($page == 'shopping_cart') or
                ($page == 'popup_shipping_estimator') or
                ($page == 'news_manager_all_news') or
                ($page == 'unsubscribe') or
                ($page == 'reviews') or
                ($page == 'checkout_shipping')
              ){
                        $link .= $page . ".html";
  } else {
  $link .= 'index.php?main_page=' . $page;
      }
     } else {
     $link .= 'index.php?main_page=' . $page;
     }
 }

-----------------------------------
書き換えする。

②.htaccessでrewriteを設定する。
③ルートにurl_data.phpを設置する。
----------------------
<?php
$urlrpl = array(
"cid1" => "Hardware", <- cidはカテゴリID
"cid1_4" => "Graphics_Cards",
"cid1_8" => "Keyboards",
"cid1_9" => "Mice",
"pid1" => "Matrox_G200_MMS", >- pidは商品ID
"pid25" => "Microsoft_Internet_Keyboard_PS2",
"pid26" => "Microsoft_IntelliMouse_Explorer"
);
?>
----------------------
④/includes/configure.phpの最終行に下記の一行文を追加。
-----------------------
define('USER_FRIENDLY_URLS_REWRITE', 'true');
-----------------------

ドロップダウンは、不明。

 

zencart URL書き換え日本語版

|

このアーカイブについて

このページには、2006年12月以降に書かれたブログ記事のうちPHP_CGIカテゴリに属しているものが含まれています。

前のアーカイブはPHP_CGI: 2006年11月です。

次のアーカイブはPHP_CGI: 2007年7月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。