php variable not being passed to mail() "to line" parameter <p>long time listener, first time caller...</p> <p>I have recently started working through O'Reilly's "Head First" books on PHP, and this is one of their exercises - the code may look familiar to some of you. </p> <p>The goal of the lesson was to demonstrate how the "mail" function in php works, and to that end they gave the following code to use as an example (edited for brevity/context):</p> <pre><code>$email = $_POST['email']; $to = 'myemail@myemail.com'; $subject = 'Abduction report'; $message = "$name . was abducted $when_it_happened and was gone for $how_long . \n" . "Number of aliens: $how_many \n" . "Alien description $alien_description\n" . "What they did: $what_they_did \n" . "Fang spotted: $fang_spotted \n" . "Other comments: $other"; mail($to, $subject, $message, 'From:' . $email); </code></pre> <p>----------------------------------EDIT-----------------------------------</p> <p>Per request, here is the results of <code>phpinfo()</code>:</p> <pre><code>System: Linux infong 2.4 #1 SMP Thu Feb 14 13:02:49 CET 2013 i686 GNU/Linux Build date: Apr 10 2013 13:38:50 Configure Command: '../configure' '­­program­suffix=5' '­­with­pear=/usr/lib/php5' '­­with­ config­file­path=/usr/lib/php5' '­­with­libxml­dir' '­­with­mysqli' '­­with­kerberos' '­­with­imap­ssl' '­­enable­soap' '­­with­xsl' '­­enable­mbstring=all' '­­with­curl' '­­with­mcrypt' '­­with­gd' '­­with­pdo­mysql' '­­with­freetype­dir' '­­with­libxml­dir' '­­with­mysql' '­­with­zlib' '­­enable­debug=no' '­­enable­safe­mode=no' '­­enable­discard­path=no' '­­with­png­dir' '­­enable­track­vars' '­­with­db' '­­with­gdbm' '­­enable­force­cgi­redirect' '­­enable­fastcgi' '­­with­ttf' '­­enable­ftp' '­­enable­dbase' '­­enable­memory­limit' '­­enable­calendar' '­­enable­wddx' '­­with­jpeg­dir=/usr/src/kundenserver/jpeg­6b' 'enable­bcmath' '­­enable­gd­imgstrttf' '­­enable­shmop' '­­enable­mhash' '­­with­mhash' '­­with­openssl' '­­enable­xslt' '­­with­xslt­sablot' '­­with­dom' '­­with­dom­xslt' '­­with­dom­exslt' '­­with­imap' '­­with­iconv' '­­with­bz2' '­­with­gettext' '­­enable­exif' '­­with­idn' '­­with­sqlite' '­­enable­sqlite­utf8' '­­enable­zip' '­­with­tidy' '­­enable­gd­native­ttf' Server API: CGI/FastCGI Virtual Directory Support: disabled Configuration File (php.ini) Path: /usr/lib/php5 Loaded Configuration File: /usr/lib/php5/php.ini Scan this dir for additional .ini files: (none) additional .ini files parsed: (none) PHP API: 20041225 PHP Extension: 20060613 Debug Build: no Thread Safety: disabled Zend Memory Manager: enabled IPv6 Support: enabled Registered PHP Streams: https, ftps, compress.zlib, compress.bzip2, php, file, data, http, ftp, zip Registered Stream Socket Transports: tcp, udp, unix, udg, ssl, sslv3, sslv2, tls Registered Strem Filters: zlib.*, bzip2.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed </code></pre> <p>Everything works as expected except that I would receive no emails after filling out and submitting the form. </p> <p>After removing the $to variable from "mail()" and replacing it with a static string ('myemail@myemail.com') I did get a properly formatted email. </p> <p>I also concatenated the "$to" variable to the body of the message and it displayed correctly from within the email body. </p> <p>So I am at a loss as to why it cannot be used in the mail's "to" line. What am I missing here?</p>