PHP 变量未传递给 mail() "to line"参数



长期监听者,第一次来电者…

我最近开始阅读O'Reilly关于PHP的"Head First"书籍,这是他们的练习之一——代码对你们中的一些人来说可能看起来很熟悉。

本课的目的是演示php中的"邮件"函数是如何工作的,为此,他们给出了以下代码作为示例(为简洁/上下文而编辑):

$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_descriptionn" . 
"What they did: $what_they_did n" .
"Fang spotted: $fang_spotted n" .
"Other comments: $other";
mail($to, $subject, $message, 'From:' . $email);

---------------------------------- 编辑 -----------------------------------

对于每个请求,phpinfo()的结果如下:

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

一切都如预期的那样工作,除了我在填写和提交表格后没有收到电子邮件。

从"mail()"中删除$to变量并将其替换为静态字符串('myemail@myemail.com')后,我确实得到了一个格式正确的电子邮件。

我还将"$to"变量连接到邮件正文中,它在邮件正文中正确显示。

所以我不明白为什么它不能在邮件的"to"行中使用。我遗漏了什么?

好吧,这很尴尬,但在浪费别人宝贵的时间之前,我最好承认这一点。

在进入PHP文档站点,运行几次Google搜索,并有另一组眼睛查看原始代码之后,问题通过添加一个'r'解决了-没有太多细节。这是一个隐藏在很长的电子邮件地址中的拼写错误。

谢谢你的帮助,Dawson,但是你从来没有机会!

最新更新