mail_basic6.phpt 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. --TEST--
  2. Test mail() function : basic functionality
  3. --INI--
  4. sendmail_path=tee mailBasic6.out >/dev/null
  5. mail.add_x_header = Off
  6. --SKIPIF--
  7. <?php
  8. if(substr(PHP_OS, 0, 3) == "WIN")
  9. die("skip Won't run on Windows");
  10. ?>
  11. --FILE--
  12. <?php
  13. echo "*** Testing mail() : basic functionality ***\n";
  14. // Valid header
  15. $to = 'user@example.com';
  16. $subject = 'Test Subject';
  17. $message = 'A Message';
  18. $additional_headers = "HEAD1: a\r\nHEAD2: b\r\n";
  19. $outFile = "mailBasic6.out";
  20. @unlink($outFile);
  21. echo "-- Valid Header --\n";
  22. // Calling mail() with all additional headers
  23. var_dump( mail($to, $subject, $message, $additional_headers) );
  24. echo file_get_contents($outFile);
  25. unlink($outFile);
  26. // Valid header
  27. $additional_headers = "HEAD1: a\nHEAD2: b\n";
  28. @unlink($outFile);
  29. echo "-- Valid Header --\n";
  30. // Calling mail() with all additional headers
  31. var_dump( mail($to, $subject, $message, $additional_headers) );
  32. echo @file_get_contents($outFile);
  33. @unlink($outFile);
  34. // Valid header
  35. // \r is accepted as valid. This may be changed to invalid.
  36. $additional_headers = "HEAD1: a\rHEAD2: b\r";
  37. @unlink($outFile);
  38. echo "-- Valid Header --\n";
  39. // Calling mail() with all additional headers
  40. var_dump( mail($to, $subject, $message, $additional_headers) );
  41. echo @file_get_contents($outFile);
  42. @unlink($outFile);
  43. //===============================================================================
  44. // Invalid header
  45. $additional_headers = "\nHEAD1: a\nHEAD2: b\n";
  46. @unlink($outFile);
  47. echo "-- Invalid Header - preceding newline--\n";
  48. // Calling mail() with all additional headers
  49. var_dump( mail($to, $subject, $message, $additional_headers) );
  50. echo @file_get_contents($outFile);
  51. @unlink($outFile);
  52. // Invalid header
  53. $additional_headers = "\rHEAD1: a\nHEAD2: b\r";
  54. @unlink($outFile);
  55. echo "-- Invalid Header - preceding newline--\n";
  56. // Calling mail() with all additional headers
  57. var_dump( mail($to, $subject, $message, $additional_headers) );
  58. echo @file_get_contents($outFile);
  59. @unlink($outFile);
  60. // Invalid header
  61. $additional_headers = "\r\nHEAD1: a\r\nHEAD2: b\r\n";
  62. @unlink($outFile);
  63. echo "-- Invalid Header - preceding newline--\n";
  64. // Calling mail() with all additional headers
  65. var_dump( mail($to, $subject, $message, $additional_headers) );
  66. echo @file_get_contents($outFile);
  67. @unlink($outFile);
  68. // Invalid header
  69. $additional_headers = "\r\n\r\nHEAD1: a\r\nHEAD2: b\r\n";
  70. @unlink($outFile);
  71. echo "-- Invalid Header - preceding newline--\n";
  72. // Calling mail() with all additional headers
  73. var_dump( mail($to, $subject, $message, $additional_headers) );
  74. echo @file_get_contents($outFile);
  75. @unlink($outFile);
  76. // Invalid header
  77. $additional_headers = "\n\nHEAD1: a\r\nHEAD2: b\r\n";
  78. @unlink($outFile);
  79. echo "-- Invalid Header - preceding newline--\n";
  80. // Calling mail() with all additional headers
  81. var_dump( mail($to, $subject, $message, $additional_headers) );
  82. echo @file_get_contents($outFile);
  83. @unlink($outFile);
  84. // Invalid header
  85. $additional_headers = "\r\rHEAD1: a\r\nHEAD2: b\r\n";
  86. @unlink($outFile);
  87. echo "-- Invalid Header - preceding newline--\n";
  88. // Calling mail() with all additional headers
  89. var_dump( mail($to, $subject, $message, $additional_headers) );
  90. echo @file_get_contents($outFile);
  91. @unlink($outFile);
  92. // Invalid header
  93. $additional_headers = "HEAD1: a\r\n\r\nHEAD2: b\r\n";
  94. @unlink($outFile);
  95. echo "-- Invalid Header - multiple newlines in the middle --\n";
  96. // Calling mail() with all additional headers
  97. var_dump( mail($to, $subject, $message, $additional_headers) );
  98. echo @file_get_contents($outFile);
  99. @unlink($outFile);
  100. // Invalid header
  101. $additional_headers = "HEAD1: a\r\n\nHEAD2: b\r\n";
  102. @unlink($outFile);
  103. echo "-- Invalid Header - multiple newlines in the middle --\n";
  104. // Calling mail() with all additional headers
  105. var_dump( mail($to, $subject, $message, $additional_headers) );
  106. echo @file_get_contents($outFile);
  107. @unlink($outFile);
  108. // Invalid header
  109. $additional_headers = "HEAD1: a\n\nHEAD2: b\r\n";
  110. @unlink($outFile);
  111. echo "-- Invalid Header - multiple newlines in the middle --\n";
  112. // Calling mail() with all additional headers
  113. var_dump( mail($to, $subject, $message, $additional_headers) );
  114. echo @file_get_contents($outFile);
  115. @unlink($outFile);
  116. // Invalid header
  117. $additional_headers = "HEAD1: a\r\rHEAD2: b\r\n";
  118. @unlink($outFile);
  119. echo "-- Invalid Header - multiple newlines in the middle --\n";
  120. // Calling mail() with all additional headers
  121. var_dump( mail($to, $subject, $message, $additional_headers) );
  122. echo @file_get_contents($outFile);
  123. @unlink($outFile);
  124. // Invalid header
  125. $additional_headers = "HEAD1: a\n\rHEAD2: b\r\n";
  126. @unlink($outFile);
  127. echo "-- Invalid Header - multiple newlines in the middle --\n";
  128. // Calling mail() with all additional headers
  129. var_dump( mail($to, $subject, $message, $additional_headers) );
  130. echo @file_get_contents($outFile);
  131. @unlink($outFile);
  132. // Invalid header
  133. $additional_headers = "HEAD1: a\n\r\nHEAD2: b\r\n";
  134. @unlink($outFile);
  135. echo "-- Invalid Header - multiple newlines in the middle --\n";
  136. // Calling mail() with all additional headers
  137. var_dump( mail($to, $subject, $message, $additional_headers) );
  138. echo @file_get_contents($outFile);
  139. @unlink($outFile);
  140. // Invalid header
  141. // Invalid, but PHP_FUNCTION(mail) trims newlines
  142. $additional_headers = "HEAD1: a\r\nHEAD2: b\r\n\n";
  143. @unlink($outFile);
  144. echo "-- Invalid Header - trailing newlines --\n";
  145. // Calling mail() with all additional headers
  146. var_dump( mail($to, $subject, $message, $additional_headers) );
  147. echo @file_get_contents($outFile);
  148. @unlink($outFile);
  149. // Invalid header
  150. // Invalid, but PHP_FUNCTION(mail) trims newlines
  151. $additional_headers = "HEAD1: a\r\nHEAD2: b\n\n";
  152. @unlink($outFile);
  153. echo "-- Invalid Header - trailing newlines --\n";
  154. // Calling mail() with all additional headers
  155. var_dump( mail($to, $subject, $message, $additional_headers) );
  156. echo @file_get_contents($outFile);
  157. @unlink($outFile);
  158. // Invalid header
  159. // Invalid, but PHP_FUNCTION(mail) trims newlines
  160. $additional_headers = "HEAD1: a\r\nHEAD2: b\n";
  161. @unlink($outFile);
  162. echo "-- Invalid Header - trailing newlines --\n";
  163. // Calling mail() with all additional headers
  164. var_dump( mail($to, $subject, $message, $additional_headers) );
  165. echo @file_get_contents($outFile);
  166. @unlink($outFile);
  167. // Invalid header
  168. // Invalid, but PHP_FUNCTION(mail) trims newlines
  169. $additional_headers = "HEAD1: a\r\nHEAD2: b\r";
  170. @unlink($outFile);
  171. echo "-- Invalid Header - trailing newlines --\n";
  172. // Calling mail() with all additional headers
  173. var_dump( mail($to, $subject, $message, $additional_headers) );
  174. echo @file_get_contents($outFile);
  175. @unlink($outFile);
  176. ?>
  177. --EXPECTF--
  178. *** Testing mail() : basic functionality ***
  179. -- Valid Header --
  180. bool(true)
  181. To: user@example.com
  182. Subject: Test Subject
  183. HEAD1: a
  184. HEAD2: b
  185. A Message
  186. -- Valid Header --
  187. bool(true)
  188. To: user@example.com
  189. Subject: Test Subject
  190. HEAD1: a
  191. HEAD2: b
  192. A Message
  193. -- Valid Header --
  194. bool(true)
  195. To: user@example.com
  196. Subject: Test Subject
  197. HEAD1: a HEAD2: b
  198. A Message
  199. -- Invalid Header - preceding newline--
  200. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  201. bool(false)
  202. -- Invalid Header - preceding newline--
  203. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  204. bool(false)
  205. -- Invalid Header - preceding newline--
  206. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  207. bool(false)
  208. -- Invalid Header - preceding newline--
  209. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  210. bool(false)
  211. -- Invalid Header - preceding newline--
  212. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  213. bool(false)
  214. -- Invalid Header - preceding newline--
  215. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  216. bool(false)
  217. -- Invalid Header - multiple newlines in the middle --
  218. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  219. bool(false)
  220. -- Invalid Header - multiple newlines in the middle --
  221. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  222. bool(false)
  223. -- Invalid Header - multiple newlines in the middle --
  224. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  225. bool(false)
  226. -- Invalid Header - multiple newlines in the middle --
  227. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  228. bool(false)
  229. -- Invalid Header - multiple newlines in the middle --
  230. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  231. bool(false)
  232. -- Invalid Header - multiple newlines in the middle --
  233. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  234. bool(false)
  235. -- Invalid Header - trailing newlines --
  236. bool(true)
  237. To: user@example.com
  238. Subject: Test Subject
  239. HEAD1: a
  240. HEAD2: b
  241. A Message
  242. -- Invalid Header - trailing newlines --
  243. bool(true)
  244. To: user@example.com
  245. Subject: Test Subject
  246. HEAD1: a
  247. HEAD2: b
  248. A Message
  249. -- Invalid Header - trailing newlines --
  250. bool(true)
  251. To: user@example.com
  252. Subject: Test Subject
  253. HEAD1: a
  254. HEAD2: b
  255. A Message
  256. -- Invalid Header - trailing newlines --
  257. bool(true)
  258. To: user@example.com
  259. Subject: Test Subject
  260. HEAD1: a
  261. HEAD2: b
  262. A Message