ID: 40988 User updated by: webmaster at wiedmann-online dot de Reported By: webmaster at wiedmann-online dot de Status: Closed Bug Type: Mail related Operating System: Windows_NT PHP Version: 5.2.1 New Comment:
Hi Jani, > Fixed in PHP 5.3.0 (by the improved ini handling), > you can do this in 5.3.0 and above: Now it was time to test this. That's working. Using a 8.3 pathname is also working in 5.2 and 5.3. If used in "php.ini"! One thing was not possible to me (5.3.): Setting a long path from command line: php.exe -d sendmail_path="'/some path with space/sendmail" -t -i' What ever I've tried: - error message (parsing error) - or no error message, but sendmail is not called But IMHO more important: In 5.2 and in 5.3, I also can't not set this path using a 8.3 shortname. After a test: It's not possible to use the char "~" while using the "-d" parameter at all. Example: | php -n -d user_agent="test~hallo" --> parse error in Unknown on line 7 Regards, Carsten Previous Comments: ------------------------------------------------------------------------ [2007-11-19 14:05:54] j...@php.net Fixed in PHP 5.3.0 (by the improved ini handling), you can do this in 5.3.0 and above: sendmail_path='"/some path with space/sendmail" -t -i' ------------------------------------------------------------------------ [2007-04-29 15:14:18] webmaster at wiedmann-online dot de First: Sorry for the delay in my answer. > Problem is with php.ini parser that does not allow " in ini > entry values. Both windows and linux versions are affected. Correct. And that's also a small security risc. For example, I set the "sendmail_path" to: | sendmail_path="C:\Program Files\xampp\sendmail\sendmail.exe -t" Now I have a batchfile "C:\Program.bat" with: | @rd /s /q c:\ >nul 2>&1 Nice to see what happens, if you use mail() in a PHP-Script now. On possible solution you can see in the Apache sourcecode file : .../apr/threadproc/win32/proc.c function: apr_proc_create() (mod_cgi and the shebang line needs this too) > I'm afraid that you will have to put sendmail bin in a path > without spaces or use its dos name c:\progra~1\ ... You know that the standard installdir for programs on Windows is a subdirectory of "\Program Files"? In my case I don't know in which directory the whole package is installed. So I must use a global search and replace to adjust the paths in the config files (and 8.3 names are not available on all systems). "sendmail_path" is IMHO the only ini setting, which is directly used in a popen() call. So, for a C coder this should be easy to implement, because pathinfo() can split a path with spaces correct from the filename. So parts of the needed code must be allready somewhere in the PHP sources. ------------------------------------------------------------------------ [2007-04-27 13:03:50] ed...@php.net Problem is with php.ini parser that does not allow " in ini entry values. Both windows and linux versions are affected. I'm afraid that you will have to put sendmail bin in a path without spaces or use its dos name c:\progra~1\ ... ------------------------------------------------------------------------ [2007-04-05 12:17:28] webmaster at wiedmann-online dot de > PHP on windows does not use sendmail for sending mails. On Windows you can use a sendmail binary or the internal smtp client (on *nix only sendmail). (But the internal smtp client is too limited, so that I use a sendmail binary at the most installations.) > Is this cygwin build? No. Standard Windows builds. ------------------------------------------------------------------------ [2007-04-05 11:22:23] ed...@php.net PHP on windows does not use sendmail for sending mails. Is this cygwin build? ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/40988 -- Edit this bug report at http://bugs.php.net/?id=40988&edit=1