未将php变量传递给mail();在“行”中加上“;参数

未将php变量传递给mail();在“行”中加上“;参数,php,email,variables,Php,Email,Variables,长时间侦听器,第一次调用 我最近开始阅读O'Reilly关于PHP的“Head First”书籍,这是他们的一个练习——你们中的一些人可能对代码很熟悉 本课程的目标是演示php中的“邮件”函数是如何工作的,为此,他们给出了以下代码作为示例(为简洁/上下文而编辑): ----------------------------------编辑----------------------------------- 以下是每个请求的phpinfo()结果: 除了填写并提交表格后我不会收到任何电子邮件外,一

长时间侦听器,第一次调用

我最近开始阅读O'Reilly关于PHP的“Head First”书籍,这是他们的一个练习——你们中的一些人可能对代码很熟悉

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

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

以下是每个请求的
phpinfo()
结果:

除了填写并提交表格后我不会收到任何电子邮件外,一切正常

从“mail()”中删除$to变量并用静态字符串('myemail@myemail.com我确实收到了一封格式正确的电子邮件

我还将“$to”变量连接到邮件正文,并在邮件正文中正确显示


所以我不明白为什么不能在邮件的“收件人”行中使用它。我错过了什么?

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

在访问了PHP文档站点,运行了几次Google搜索,并用另一组眼睛查看了原始代码之后,问题通过添加一个“r”得到了解决,没有过多的细节。这是一个隐藏在长电子邮件地址中的打字错误


谢谢你的帮助,道森,但你从来没有机会

您是否已尝试将
'From:'.$email
放入
$headers
变量:
$headers='From:'.$email。。。邮件($to$sub$msg$headers)
?您的代码似乎是正确的,但这并不意味着您的服务器喜欢它。这是在什么类型的服务器上运行的?我还想把你的$to email加两倍,只是为了排除这个问题。这不是对这个问题的直接回答,但是你是否考虑过使用高质量的mailer类,而不是PHP糟糕的内置
mail()
函数?我建议下载或下载。它们让用PHP编写简单的电子邮件程序变得非常简单。感谢您的快速回复。。。道森:我只是尝试了你的“嵌套变量”想法,但没有得到任何改变。我忘了提到我已经尝试了双引号,但也没有成功。服务器是托管包的一部分,因为这是我第一次尝试服务器端脚本,也是我第一次认真尝试编程,所以我认为对“服务器类型”问题的最佳答案是将(第一页)响应发布到
phpinfo()-请参见上面的结果。斯帕德利:谢谢你的建议。。。当然值得一看!
$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);
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