回答編集履歴

1

追記

2017/05/02 05:36

投稿

coba-coba
coba-coba

スコア1409

test CHANGED
@@ -1,6 +1,8 @@
1
1
  PHPのヒアドキュメントを使ったらどうでしょう?
2
2
 
3
3
  同じ書き方でHTMLメールにも使えます。
4
+
5
+ HTMLメールを使う場合には、一例ですが、レイアウトファイルで```<?= nl2br($this->fetch('content')) ?>```を使って出力します。
4
6
 
5
7
  ```PHP
6
8
 
@@ -31,3 +33,91 @@
31
33
  ?>
32
34
 
33
35
  ```
36
+
37
+
38
+
39
+ 追記
40
+
41
+ ---
42
+
43
+ 多分ですが、以下のPHPの仕様に引っかかっているのだと思います。
44
+
45
+ ```PHP
46
+
47
+ <?="a"?>
48
+
49
+ <?="b"?>
50
+
51
+
52
+
53
+ 出力:
54
+
55
+ ab
56
+
57
+ ```
58
+
59
+ ```PHP
60
+
61
+ <?="a"?>
62
+
63
+
64
+
65
+ <?="b"?>
66
+
67
+
68
+
69
+ 出力:
70
+
71
+ a
72
+
73
+ b
74
+
75
+ ```
76
+
77
+ ```PHP
78
+
79
+ 1<?="a"?>2
80
+
81
+ 3<?="b"?>4
82
+
83
+
84
+
85
+ 出力:
86
+
87
+ 1a2
88
+
89
+ 3b4
90
+
91
+ ```
92
+
93
+ ```PHP
94
+
95
+ 1
96
+
97
+ <?="a"?>
98
+
99
+ 2
100
+
101
+ 3<?="b"?>4
102
+
103
+
104
+
105
+ 出力:
106
+
107
+ 1
108
+
109
+ a2
110
+
111
+ 3b4
112
+
113
+ ```
114
+
115
+ watanabe9434さんのおっしゃる通り```<?= PHP_EOL ?>```を加えてもいいと思いますが、個人的にはヒアドキュメントでまとめてしまった方が楽で見やすいかなと。
116
+
117
+
118
+
119
+ ちなみにCakePHP3では、メールを送信するまでのメッセージ部分の処理では、改行コードを```\n```に置換して処理しています。
120
+
121
+ そして、メール送信時には、PHPのmail()を使う場合には```PHP_EOL```を、SMTPを使う場合は```"\r\n"```を使っています。
122
+
123
+