Hi,

recently I had the problem that we disable the mail() function if
configure can't find the sendmail binary. Is there any real reason for
this? I can image a few situations where the binary is in a non-standard
location or PHP is compiled on a different host than used.

I'd like to commit the attached patch which should always enable mail(),
any objections?

johannes

P.S. If it doesn't come through: The patch is available on
http://schlueters.de/~johannes/php/php_mail_always_available.diff too.
Index: ext/mbstring/mbstring.c
===================================================================
RCS file: /repository/php-src/ext/mbstring/mbstring.c,v
retrieving revision 1.268
diff -u -p -r1.268 mbstring.c
--- ext/mbstring/mbstring.c	4 Apr 2007 15:23:09 -0000	1.268
+++ ext/mbstring/mbstring.c	10 Jul 2007 21:16:22 -0000
@@ -3317,7 +3317,6 @@ PHP_FUNCTION(mb_decode_numericentity)
 /* {{{ proto int mb_send_mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])
  *  Sends an email message with MIME scheme
  */
-#if HAVE_SENDMAIL
 
 #define SKIP_LONG_HEADER_SEP_MBSTRING(str, pos)										\
 	if (str[pos] == '\r' && str[pos + 1] == '\n' && (str[pos + 2] == ' ' || str[pos + 2] == '\t')) {	\
@@ -3821,16 +3820,6 @@ PHP_FUNCTION(mb_send_mail)
 #undef PHP_MBSTR_MAIL_MIME_HEADER2
 #undef PHP_MBSTR_MAIL_MIME_HEADER3
 #undef PHP_MBSTR_MAIL_MIME_HEADER4
-
-#else	/* HAVE_SENDMAIL */
-
-PHP_FUNCTION(mb_send_mail)
-{
-	RETURN_FALSE;
-}
-
-#endif	/* HAVE_SENDMAIL */
-
 /* }}} */
 
 /* {{{ proto mixed mb_get_info([string type])
Index: ext/standard/basic_functions.c
===================================================================
RCS file: /repository/php-src/ext/standard/basic_functions.c,v
retrieving revision 1.862
diff -u -p -r1.862 basic_functions.c
--- ext/standard/basic_functions.c	3 Jul 2007 10:22:55 -0000	1.862
+++ ext/standard/basic_functions.c	10 Jul 2007 21:16:23 -0000
@@ -1816,7 +1816,6 @@ ZEND_END_ARG_INFO()
 #endif
 /* }}} */
 /* {{{ mail.c */
-#ifdef HAVE_SENDMAIL
 static
 ZEND_BEGIN_ARG_INFO(arginfo_ezmlm_hash, 0)
 	ZEND_ARG_INFO(0, addr)
@@ -1830,7 +1829,6 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_mail, 0, 
 	ZEND_ARG_INFO(0, additional_headers)
 	ZEND_ARG_INFO(0, additional_parameters)
 ZEND_END_ARG_INFO()
-#endif
 /* }}} */
 /* {{{ math.c */
 static
@@ -3693,10 +3691,8 @@ zend_function_entry basic_functions[] = 
 	PHP_FALIAS(diskfreespace,		disk_free_space,						arginfo_disk_free_space)
 
 	/* functions from mail.c */
-#ifdef HAVE_SENDMAIL
 	PHP_FE(mail,															arginfo_mail)
 	PHP_FE(ezmlm_hash,														arginfo_ezmlm_hash)
-#endif
 
 	/* functions from syslog.c */
 #ifdef HAVE_SYSLOG_H
@@ -4944,14 +4940,9 @@ PHPAPI int _php_error_log(int opt_err, c
 
 		case 1:		/*send an email */
 			{
-#if HAVE_SENDMAIL
 				if (!php_mail(opt, "PHP error_log message", message, headers, NULL TSRMLS_CC)) {
 					return FAILURE;
 				}
-#else
-				php_error_docref(NULL TSRMLS_CC, E_WARNING, "Mail option not available!");
-				return FAILURE;
-#endif
 			}
 			break;
 
Index: ext/standard/mail.c
===================================================================
RCS file: /repository/php-src/ext/standard/mail.c,v
retrieving revision 1.93
diff -u -p -r1.93 mail.c
--- ext/standard/mail.c	10 Jul 2007 20:23:26 -0000	1.93
+++ ext/standard/mail.c	10 Jul 2007 21:16:23 -0000
@@ -35,7 +35,6 @@
 #include "php_ini.h"
 #include "exec.h"
 
-#if HAVE_SENDMAIL
 #ifdef PHP_WIN32
 #include "win32/sendmail.h"
 #endif
@@ -271,13 +270,6 @@ PHP_MINFO_FUNCTION(mail)
 }
 /* }}} */
 
-#else
-
-PHP_FUNCTION(mail) {}
-PHP_MINFO_FUNCTION(mail) {}
-
-#endif
-
 /*
  * Local variables:
  * tab-width: 4
Index: ext/standard/php_mail.h
===================================================================
RCS file: /repository/php-src/ext/standard/php_mail.h,v
retrieving revision 1.20
diff -u -p -r1.20 php_mail.h
--- ext/standard/php_mail.h	1 Jan 2007 09:29:32 -0000	1.20
+++ ext/standard/php_mail.h	10 Jul 2007 21:16:23 -0000
@@ -24,11 +24,7 @@
 PHP_FUNCTION(mail);
 PHP_MINFO_FUNCTION(mail);
 
-#if HAVE_SENDMAIL
-
 PHP_FUNCTION(ezmlm_hash);
 PHPAPI extern int php_mail(char *to, char *subject, char *message, char *headers, char *extra_cmd TSRMLS_DC);
 
-#endif
-
 #endif /* PHP_MAIL_H */
Index: main/main.c
===================================================================
RCS file: /repository/php-src/main/main.c,v
retrieving revision 1.734
diff -u -p -r1.734 main.c
--- main/main.c	10 Jul 2007 18:42:01 -0000	1.734
+++ main/main.c	10 Jul 2007 21:16:23 -0000
@@ -341,7 +341,7 @@ static PHP_INI_MH(OnUpdateDefaultMimetyp
 #if defined(PHP_PROG_SENDMAIL) && !defined(NETWARE)
 #	define DEFAULT_SENDMAIL_PATH PHP_PROG_SENDMAIL " -t -i "
 #else
-#	define DEFAULT_SENDMAIL_PATH NULL
+#	define DEFAULT_SENDMAIL_PATH "/usr/sbin/sendmail -t -i" 
 #endif
 
 /* {{{ PHP_INI

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to