質問 > その他 > メール送信時の改行について教えて下さい。 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ゲスト |
投稿日時: 2007/8/24 22:26
対応状況: −−−
|
メール送信時の改行について教えて下さい。 受信されるメールの改行が半角スペースになってしまいます。
各tplファイルは特に変更などはしていません。 メールソフトはoutlook2003です。 注文後に届くメール、お問い合わせの自動返信メール、メールマガジンなど試してみましたが全て改行ではなく半角スペースです。 yahooメールではtplファイルの改行しているとおり改行されて受信されます。 outlookの設定なのかと思ったのですが設定箇所などもわからずで何が原因なのかも全くわからない状態です。 同じような内容が過去ログにもあったのですが解決策の答えが出ていなかったので質問させて頂きました。わかる方おりましたら宜しくお願いします。 |
|
nanasess |
投稿日時: 2007/8/25 3:04
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: メール送信時の改行について教えて下さい。 大河内です.
Outlook2003 の仕様はわからないのですが, tplファイルの改行コードはどうなっていますか? |
ゲスト |
投稿日時: 2007/8/25 12:56
対応状況: −−−
|
Re: メール送信時の改行について教えて下さい。 横から失礼します。
今までThunderbirdでメール受信していたので気づかなかったのですが、Outlookで受信してみたら、私も改行なしの状態になりました。 (ちなみにThunderbirdで受信すると改行がすべて2個になってしまう状態で、そのうち直さなければ・・・とは思っていたのですが) 以前、メール送信時の改行の扱いで困ったことがあって、その時に調べた記憶では(うろおぼえのところがありますが) ・Windows、Mac、Unixで改行コードは違う(これは当たりまえ) ・メールサーバ(あるいはサーバ環境?)によっても、改行の扱いが違う =>メール送信時には改行コードを統一して送る ということで、いつも使っているコードをGC_SendMail.phpのメール送信処理の直前に入れてみました。 $this->body = str_replace("\r", "\n", str_replace("\r\n", "\n", $this->body)); 一応これでOutlookでも改行がある状態で受信できるようになりました(かつ、Thunderbirdでも改行が正しく1個で表示されるようになりました) ちなみにサーバはXREAです。 XREAのほかにラピッドのサーバもさわっているのですが、こちらは Thunderbirdでの受信時、改行は1個=正しく表示されているようです。 ※ラピッド&Outlookでは試してません。気になるのでそのうち試してみようと思います。 メールサーバの挙動に関して私自身の理解が非常にあいまいなので、解釈違いやもっとよい対応などありましたが、ご指導ください。 |
|
ゲスト |
投稿日時: 2007/8/25 13:04
対応状況: −−−
|
Re: メール送信時の改行について教えて下さい。 すいません、上記のゲストです。
上の最後 > 解釈違いやもっとよい対応など”ありましたが” は、「ありましたら」の間違いです。失礼しました。 |
|
ゲスト |
投稿日時: 2007/8/25 19:09
対応状況: −−−
|
Re: メール送信時の改行について教えて下さい。 各tplファイルを確認しましたところ改行コードは
CR+LFとなっています。 これでなにか原因がわかるといいのですが^^; または、回答してくれたゲストさんの通り $this->body = str_replace("\r", "\n", str_replace("\r\n", "\n", $this->body)); として解決するならいいのですがどのファイルのどの部分に足したらいいのかが全くわかりません。 お手数お掛けしますが宜しくお願い致します。 |
|
ゲスト |
投稿日時: 2007/8/26 15:12
対応状況: −−−
|
Re: メール送信時の改行について教えて下さい。 (横からはいってきた)ゲストです。
> どのファイルのどの部分 data/class/GC_SendMail.phpの82行目あたりにsendMailというfunctionがあります。このfunctionの中の // メール送信 if( mb_send_mail(・・・・・) のmb_send_mailがメール送信なので、この直前に上記の1行を追加しました。 ※この対処方法が正しいのかどうかはわかりませんが。。。 追記:受注時のメールと問い合わせメールで改行が入ることを確認しました。メルマガはテストしていません。 |
|
ゲスト |
投稿日時: 2007/8/27 12:43
対応状況: −−−
|
Re: メール送信時の改行について教えて下さい。 メルマガもテストしてみたところ改行されるようになりました!
管理者に届く送信完了のお知らせが改行されていませんでしたがこれは別に設定するものなのでしょうか? ひとまずお客さんに送信されるメールの改行が正常になりずっとわからずに困っていたので本当に助かりました。 詳しく教えて頂きましてありがとうございました。 |
|
ゲスト |
投稿日時: 2007/8/27 14:52
対応状況: −−−
|
Re: メール送信時の改行について教えて下さい。 再び(横から入ってきた)ゲストです。
とりあえず回避できたようで、よかったですね。(注文のメールで改行がなくなると、目も当てられない状態になりますよね。。。) ”管理者に届く送信完了のメール”とは、メルマガ送信完了時に送られるメールですよね。 あれは(メルマガがテキストメールであるかHTMLメールであるかにかかわらず)HTMLメールとして送信されるようです(※)。 処理としては今回1行入れていただいたfunctionのすぐ下にある function sendHtmlMail のほうが実行されていると思います。 私はHTMLメールを扱ったことがないので、こちらについては”・・・?”です。よければ、ためしてみてください。 ※この辺の処理はhtml/admin/mail/sendmail.phpを見るとわかります。 今、ラピッドで動かしている方でどうなるか試してみたのですが、Outlookでもちゃんと改行されてました(ラピッドのほうはスクリプト変えていません)。 - ラピッドで動かしているEC-CUBEは1.3.1a - XREAで動かしているEC-CUBEは1.3.4 という違いはあるのですが、多分この辺の処理は変わっていないと思います(ということで、やはりこの現象はサーバによるようです)。 補足:追加した1行は改行コードをLFに統一する、という処理なので、テンプレートの改行がLFであれば、問題は発生しないのかもしれません。 |
|
habu |
投稿日時: 2007/8/28 10:44
対応状況: −−−
|
長老 登録日: 2006/9/15 居住地: 投稿: 282 |
Re: メール送信時の改行について教えて下さい。 羽生と申します。
メールの改行問題で、先ほど別のスレッドに返信した後、 ここにも同じスレッドがある事に気付きました。 既に解決済みの様ですが、 \x0Dや、\x0A についての言及は無い様でしたので、 2つのスレッドの橋渡しの為、投稿致します。 http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=980&forum=10&post_id=3415#forumpost3415 |
ゲスト |
投稿日時: 2007/8/28 14:25
対応状況: −−−
|
Re: メール送信時の改行について教えて下さい。 何度もお返事ありがとうございます。
function sendHtmlMail内を // メール送信 $this->body = str_replace("\r", "\n", str_replace("\r\n", "\n", $this->body)); if( mb_send_mail( $this->to, $this->subject, $this->body, $this->header) ) { とすると本文は改行されるのですが管理者に送られるメルマガ配信完了のSubject部分のみが文字化けしてしまいます。 // メール送信 $this->body = str_replace("\r", "\n", str_replace("\r\n", "\n", $this->body)); if( mail( $this->to, $this->subject, $this->body, $this->header) ) { とすると文字化けもしませんが改行もされない状態です。 GC_SendMail.phpの改行コードをLFとしてみたのですが 同じ結果でした。 羽生さんの回答も参考にしてみたのですが私の知識がなく応用の方法がいまいちわからなく断念してしまいました・・・ |
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |