質問 > フロント機能 > 受信したメールの行間隔が異常に広い |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ゲスト |
投稿日時: 2012/7/4 19:10
対応状況: −−−
|
受信したメールの行間隔が異常に広い お問い合わせや受注メールなどのテストをしているのですが、
受信したメールの行間隔が広く、とても読みづらメールになっております。 ただし、このような現象が起きている部分は、 基本情報管理>メール設定から入力した部分(ヘッダー、フッター)だけ行間隔が広くなるようです。 また、このメールをGmailで受信するとこのような問題はないのですが、レンタルサーバーを介してGmailで受信したメールは行間隔が広くなっているようです。 なぜこのような現象が起きるのでしょうか?そもそもこれはECCUBEの問題なのか?サーバーの問題なのか? 全くわかりません。 アドバイスをよろしくお願いします。 |
|
ゲスト |
投稿日時: 2012/7/7 10:30
対応状況: −−−
|
Re: 受信したメールの行間隔が異常に広い 基本情報管理>メール設定から入力した部分(ヘッダー、フッター)だけが行間が広がるので、
このヘッダーとフッターに入力した文字をすべて削除したいのですが、何度削除しても入力した内容が消えません。 どうすれば、ヘッダーとフッターに入力した文字をすべて消すことができるのでしょうか? 一度入力すると、編集はできても空にすることはできないのでしょうか? 消すことができれば、メールのテンプレートにヘッダー&フッターの内容をいれこんでごまかすこともできると思うので・・・ (でも、これも問題がありそうですが) |
|
gugu |
投稿日時: 2012/7/7 16:59
対応状況: −−−
|
新米 登録日: 2011/4/12 居住地: 投稿: 7 |
Re: 受信したメールの行間隔が異常に広い こんにちわ。
行間が広がるのは、改行コード課と思いますが、環境によるものが大きいかとは思います。 ヘッダとフッタですが、管理画面からは空にすることはできないようです。 LC_Page_Admin_Basis_Mail.php の lfInitParam だと思いますが、 EXIST_CHECK が入っていて空であることを禁止しています。 入力画面に必須の注釈は無いですが。。 DBを直接操作すれば削除は可能ですが、慣れていないようであればあまりお勧めの操作ではありません。 LC_Page_Admin_Basis_Mail_Ex.php で上書きしてEXIST_CHECKを外すか、 DBを書き換えるか。 ですかね。。 DBはご自身で該当箇所が探せないようであればやらないほうが良いと思います。 空にできないのはBUGというべきか否か。。 参考までに。
|
ゲスト |
投稿日時: 2012/7/18 21:03
対応状況: −−−
|
Re: 受信したメールの行間隔が異常に広い DB「dtb_mailtemplate」で削除できました。
しかし、問題は解決できませんでした。 DBを作り直し、「基本情報管理>メール設定」のヘッダーやフッターに変更を加える前に、お問い合わせメールや注文受付メールを試して見たところ、お客様が受信するメールも、お店側が受信するメールも正常に表示されました。 その後、「基本情報管理>メール設定」で「注文受付メール」のヘッダーやフッターに変更を加えると、お店側が受信するメールで改行が増えた状態になりました。ここに何か問題はないのでしょうか? DB「dtb_mailtemplate」をエクスポートし内容を見てみると、\n の部分が \r\nとなっているようです。「基本情報管理>メール設定」で「注文受付メール」のヘッダーやフッターに変更を加える前は、\nでしたが、どうして\r\nに変わるのでしょうか? ちなみに、\r\nを\nに変更すると、ヘッダーやフッターの部分は正常に戻りますが、本文が正常な状態に戻りません。 お客様に届くメールがどの環境でも正常に表示されれば良いのだが。。。 困ったなぁ。 追記2012.07.20 各種メールテンプレートファイルにヘッダーやフッター部分を直接入力し、 試してみたところ、これでも解決できません。 使用しているソフトはDreamWeaverCS3ですが、ソフトの問題なのでしょうか? このソフトの改行コードの設定はCRLF(windows)です。 |
|
uubb |
投稿日時: 2012/8/2 16:24
対応状況: −−−
|
常連 登録日: 2012/5/29 居住地: 投稿: 53 |
Re: 受信したメールの行間隔が異常に広い data/class/SC_SendMail.phpをカスタマイズする事によって outlookも改行された状態で表示され見やすくなりました。 SC_SendMail.phpの119行ぐらいに本文の設定がありますので、
// 本文の設定 function setBody($body) { $this->body = mb_convert_encoding($body, "JIS", CHAR_CODE); } を下記のように修正します。 // 本文の設定 function setBody($body) { $this->body = mb_convert_encoding($body, "JIS", CHAR_CODE); $this->body = str_replace("\x0D\x0A", "\n", $this->body); $this->body = str_replace("\x0D", "\n", $this->body); $this->body = str_replace("\x0A", "\n", $this->body); } これで、今のところは問題ありません。 |
seasoft |
投稿日時: 2012/8/2 16:37
対応状況: −−−
|
神 登録日: 2008/6/4 居住地: 投稿: 7367 |
Re: 受信したメールの行間隔が異常に広い 「"\x0A" → "\n"」は無意味なような・・・
PHP らしく実装するなら、 $this->body = str_replace(array("\r\n", "\r"), "\n", $this->body); とか、1行記述もありかも。(動作未検証) # 本当は strtr の方が良いのかもなぁ・・・
|
ゲスト |
投稿日時: 2012/8/6 14:29
対応状況: −−−
|
Re: 受信したメールの行間隔が異常に広い uubb様、seasoft様
返答いただきありがとうございます。 サイトを開始したので、フォーラムのチャックをしばらくしておりませんでした。 uubb様へ ---------------------------------------------------------------- 教えていただいた通り、書き換えたところ、 理想通りの改行数で表示されるようになりました。 現在は、アドバイスいただいたものを使用しております。 ただし、アドバイスがもう一つあり、そちらがシンプルなのでうまく動くようであれば、そちらに変更するかもしれません。 ありがとうございました。 seasoft様へ ---------------------------------------------------------------- 教えていただいた通り、書き換えたところ、 本文が全くないメールが届くようです。 // 本文の設定 function setBody($body) { $this->body = str_replace(array("\r\n", "\r"), "\n", $this->body); } 上記の通りでいいのでしょうか? それとも、何か足りないのでしょうか? よろしくお願いいたします。 |
|
habu |
投稿日時: 2013/3/25 21:04
対応状況: −−−
|
長老 登録日: 2006/9/15 居住地: 投稿: 282 |
Re: 受信したメールの行間隔が異常に広い こちら、修正パッチをコミットしました。
http://svn.ec-cube.net/open_trac/ticket/2203 >goodspeed様 引用: 上記の通りでいいのでしょうか? 1行追記するとうまくいくと思います。 http://svn.ec-cube.net/open_trac/changeset/22752
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |