PHP_CGI: 2006年12月アーカイブ
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を追加
サーバー設定
/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
①
/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');
-----------------------
ドロップダウンは、不明。