mail_basic6.phpt 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. --TEST--
  2. Test mail() function : basic functionality
  3. --INI--
  4. sendmail_path=tee mailBasic.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. /* Prototype : int mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])
  14. * Description: Send an email message with invalid addtional_headers
  15. * Source code: ext/standard/mail.c
  16. * Alias to functions:
  17. */
  18. echo "*** Testing mail() : basic functionality ***\n";
  19. // Valid header
  20. $to = 'user@example.com';
  21. $subject = 'Test Subject';
  22. $message = 'A Message';
  23. $additional_headers = "HEAD1: a\r\nHEAD2: b\r\n";
  24. $outFile = "mailBasic.out";
  25. @unlink($outFile);
  26. echo "-- Valid Header --\n";
  27. // Calling mail() with all additional headers
  28. var_dump( mail($to, $subject, $message, $additional_headers) );
  29. echo file_get_contents($outFile);
  30. unlink($outFile);
  31. // Valid header
  32. $additional_headers = "HEAD1: a\nHEAD2: b\n";
  33. @unlink($outFile);
  34. echo "-- Valid Header --\n";
  35. // Calling mail() with all additional headers
  36. var_dump( mail($to, $subject, $message, $additional_headers) );
  37. echo @file_get_contents($outFile);
  38. @unlink($outFile);
  39. // Valid header
  40. // \r is accepted as valid. This may be changed to invalid.
  41. $additional_headers = "HEAD1: a\rHEAD2: b\r";
  42. @unlink($outFile);
  43. echo "-- Valid Header --\n";
  44. // Calling mail() with all additional headers
  45. var_dump( mail($to, $subject, $message, $additional_headers) );
  46. echo @file_get_contents($outFile);
  47. @unlink($outFile);
  48. //===============================================================================
  49. // Invalid header
  50. $additional_headers = "\nHEAD1: a\nHEAD2: b\n";
  51. @unlink($outFile);
  52. echo "-- Invalid Header - preceeding newline--\n";
  53. // Calling mail() with all additional headers
  54. var_dump( mail($to, $subject, $message, $additional_headers) );
  55. echo @file_get_contents($outFile);
  56. @unlink($outFile);
  57. // Invalid header
  58. $additional_headers = "\rHEAD1: a\nHEAD2: b\r";
  59. @unlink($outFile);
  60. echo "-- Invalid Header - preceeding newline--\n";
  61. // Calling mail() with all additional headers
  62. var_dump( mail($to, $subject, $message, $additional_headers) );
  63. echo @file_get_contents($outFile);
  64. @unlink($outFile);
  65. // Invalid header
  66. $additional_headers = "\r\nHEAD1: a\r\nHEAD2: b\r\n";
  67. @unlink($outFile);
  68. echo "-- Invalid Header - preceeding newline--\n";
  69. // Calling mail() with all additional headers
  70. var_dump( mail($to, $subject, $message, $additional_headers) );
  71. echo @file_get_contents($outFile);
  72. @unlink($outFile);
  73. // Invalid header
  74. $additional_headers = "\r\n\r\nHEAD1: a\r\nHEAD2: b\r\n";
  75. @unlink($outFile);
  76. echo "-- Invalid Header - preceeding newline--\n";
  77. // Calling mail() with all additional headers
  78. var_dump( mail($to, $subject, $message, $additional_headers) );
  79. echo @file_get_contents($outFile);
  80. @unlink($outFile);
  81. // Invalid header
  82. $additional_headers = "\n\nHEAD1: a\r\nHEAD2: b\r\n";
  83. @unlink($outFile);
  84. echo "-- Invalid Header - preceeding newline--\n";
  85. // Calling mail() with all additional headers
  86. var_dump( mail($to, $subject, $message, $additional_headers) );
  87. echo @file_get_contents($outFile);
  88. @unlink($outFile);
  89. // Invalid header
  90. $additional_headers = "\r\rHEAD1: a\r\nHEAD2: b\r\n";
  91. @unlink($outFile);
  92. echo "-- Invalid Header - preceeding newline--\n";
  93. // Calling mail() with all additional headers
  94. var_dump( mail($to, $subject, $message, $additional_headers) );
  95. echo @file_get_contents($outFile);
  96. @unlink($outFile);
  97. // Invalid header
  98. $additional_headers = "HEAD1: a\r\n\r\nHEAD2: b\r\n";
  99. @unlink($outFile);
  100. echo "-- Invalid Header - multiple newlines in the middle --\n";
  101. // Calling mail() with all additional headers
  102. var_dump( mail($to, $subject, $message, $additional_headers) );
  103. echo @file_get_contents($outFile);
  104. @unlink($outFile);
  105. // Invalid header
  106. $additional_headers = "HEAD1: a\r\n\nHEAD2: b\r\n";
  107. @unlink($outFile);
  108. echo "-- Invalid Header - multiple newlines in the middle --\n";
  109. // Calling mail() with all additional headers
  110. var_dump( mail($to, $subject, $message, $additional_headers) );
  111. echo @file_get_contents($outFile);
  112. @unlink($outFile);
  113. // Invalid header
  114. $additional_headers = "HEAD1: a\n\nHEAD2: b\r\n";
  115. @unlink($outFile);
  116. echo "-- Invalid Header - multiple newlines in the middle --\n";
  117. // Calling mail() with all additional headers
  118. var_dump( mail($to, $subject, $message, $additional_headers) );
  119. echo @file_get_contents($outFile);
  120. @unlink($outFile);
  121. // Invalid header
  122. $additional_headers = "HEAD1: a\r\rHEAD2: b\r\n";
  123. @unlink($outFile);
  124. echo "-- Invalid Header - multiple newlines in the middle --\n";
  125. // Calling mail() with all additional headers
  126. var_dump( mail($to, $subject, $message, $additional_headers) );
  127. echo @file_get_contents($outFile);
  128. @unlink($outFile);
  129. // Invalid header
  130. $additional_headers = "HEAD1: a\n\rHEAD2: b\r\n";
  131. @unlink($outFile);
  132. echo "-- Invalid Header - multiple newlines in the middle --\n";
  133. // Calling mail() with all additional headers
  134. var_dump( mail($to, $subject, $message, $additional_headers) );
  135. echo @file_get_contents($outFile);
  136. @unlink($outFile);
  137. // Invalid header
  138. $additional_headers = "HEAD1: a\n\r\nHEAD2: b\r\n";
  139. @unlink($outFile);
  140. echo "-- Invalid Header - multiple newlines in the middle --\n";
  141. // Calling mail() with all additional headers
  142. var_dump( mail($to, $subject, $message, $additional_headers) );
  143. echo @file_get_contents($outFile);
  144. @unlink($outFile);
  145. // Invalid header
  146. // Invalid, but PHP_FUNCTION(mail) trims newlines
  147. $additional_headers = "HEAD1: a\r\nHEAD2: b\r\n\n";
  148. @unlink($outFile);
  149. echo "-- Invalid Header - trailing newlines --\n";
  150. // Calling mail() with all additional headers
  151. var_dump( mail($to, $subject, $message, $additional_headers) );
  152. echo @file_get_contents($outFile);
  153. @unlink($outFile);
  154. // Invalid header
  155. // Invalid, but PHP_FUNCTION(mail) trims newlines
  156. $additional_headers = "HEAD1: a\r\nHEAD2: b\n\n";
  157. @unlink($outFile);
  158. echo "-- Invalid Header - trailing newlines --\n";
  159. // Calling mail() with all additional headers
  160. var_dump( mail($to, $subject, $message, $additional_headers) );
  161. echo @file_get_contents($outFile);
  162. @unlink($outFile);
  163. // Invalid header
  164. // Invalid, but PHP_FUNCTION(mail) trims newlines
  165. $additional_headers = "HEAD1: a\r\nHEAD2: b\n";
  166. @unlink($outFile);
  167. echo "-- Invalid Header - trailing newlines --\n";
  168. // Calling mail() with all additional headers
  169. var_dump( mail($to, $subject, $message, $additional_headers) );
  170. echo @file_get_contents($outFile);
  171. @unlink($outFile);
  172. // Invalid header
  173. // Invalid, but PHP_FUNCTION(mail) trims newlines
  174. $additional_headers = "HEAD1: a\r\nHEAD2: b\r";
  175. @unlink($outFile);
  176. echo "-- Invalid Header - trailing newlines --\n";
  177. // Calling mail() with all additional headers
  178. var_dump( mail($to, $subject, $message, $additional_headers) );
  179. echo @file_get_contents($outFile);
  180. @unlink($outFile);
  181. ?>
  182. ===DONE===
  183. --EXPECTF--
  184. *** Testing mail() : basic functionality ***
  185. -- Valid Header --
  186. bool(true)
  187. To: user@example.com
  188. Subject: Test Subject
  189. HEAD1: a
  190. HEAD2: b
  191. A Message
  192. -- Valid Header --
  193. bool(true)
  194. To: user@example.com
  195. Subject: Test Subject
  196. HEAD1: a
  197. HEAD2: b
  198. A Message
  199. -- Valid Header --
  200. bool(true)
  201. To: user@example.com
  202. Subject: Test Subject
  203. HEAD1: a HEAD2: b
  204. A Message
  205. -- Invalid Header - preceeding 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 - preceeding 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 - preceeding 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 - preceeding 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 - preceeding newline--
  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 - preceeding newline--
  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 - multiple newlines in the middle --
  236. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  237. bool(false)
  238. -- Invalid Header - multiple newlines in the middle --
  239. Warning: mail(): Multiple or malformed newlines found in additional_header in %s/mail_basic6.php on line %d
  240. bool(false)
  241. -- Invalid Header - trailing newlines --
  242. bool(true)
  243. To: user@example.com
  244. Subject: Test Subject
  245. HEAD1: a
  246. HEAD2: b
  247. A Message
  248. -- Invalid Header - trailing newlines --
  249. bool(true)
  250. To: user@example.com
  251. Subject: Test Subject
  252. HEAD1: a
  253. HEAD2: b
  254. A Message
  255. -- Invalid Header - trailing newlines --
  256. bool(true)
  257. To: user@example.com
  258. Subject: Test Subject
  259. HEAD1: a
  260. HEAD2: b
  261. A Message
  262. -- Invalid Header - trailing newlines --
  263. bool(true)
  264. To: user@example.com
  265. Subject: Test Subject
  266. HEAD1: a
  267. HEAD2: b
  268. A Message
  269. ===DONE===