Ask a Question related to PHP Development, Design and Development.
-
Jurgy #1
Qmail and PHP mail fails. Qmail runs fine - how to debug ?!
We have a problem on a running Qmail server on FreeBSD 5.2.1
The qmail server runs fine, even with mail injects from the command
prompt. (see below)
We compiled PHP 4.3.9 with most options, however we are not quite sure
we may use --enable-sockets on FreeBSD ? PHP runs on Apache 1.3.x
and it runs php scripts.
Additionally when we invoke a testmail.php the page does NOT show up
and it loops (continue running) in the browser. How can we verify
what it's doing ? We can't see anything in the logs, as there are no
established connections due to intern use of the qmail-inject
function.
We saw similar problems of this. We want to known the reason of
the loop.
Thanks.
Further details:
We have a running qmail server running on *:25
The mailserver succesfull sends mail from our LAN as from localhost.
Additionally, to be sure, we checked on the command prompt in this
way : cat test.eml | /var/qmail/bin/qmail-inject
# test.eml
Message-ID: <be>
Date: Wed, 27 Oct 2004 11:00:37 +0200
From: Me <loc>
To: root
Subject: Lokale test
Mail is received succesfull.
2) We wrote a test.php to have info on PHP 4.3.9
<?
phpinfo();
?>
#Which delivers:
Configure Command:
'./configure' '--prefix=/usr/local' '--enable-bcmath'
'--enable-calendar' '--enable-cli' '--enable-ctype' '--enable-dba'
'--enable-dbx' '--enable-dio' '--enable-exif'
'--enable-fast-install=yes' '--enable-ftp' '--enable-magic-quotes'
'--enable-memory-limit' '--enable-overload' '--enable-posix'
'--enable-session' '--enable-shared=yes' '--enable-short-tags'
'--enable-sockets' '--enable-static=yes' '--enable-tokenizer'
'--enable-versioning' '--enable-xslt' '--enable-xml' '--enable-yp'
'--enable-wddx' '--disable-debug' '--disable-ipv6'
'--with-curl=/usr/local' '--with-expat-dir=/usr/local'
'--with-freetype-dir=/usr/local' '--with-gettext=/usr/local'
'--with-gd' '--enable-gd-native-ttf' '--enable-gd-jis-conv'
'--with-apache=/usr/local/src/apache_1.3.31' '--with-bz2=/usr/local'
'--with-config-file-path=/usr/local/etc' '--with-crack=/usr/local'
'--with-dom=/usr/local' '--with-dom-xslt=/usr/local'
'--with-dom-exslt=/usr/local' '--with-gettext=/usr/local'
'--with-iconv=/usr/local' '--with-jpeg-dir=/usr/local'
'--with-layout=GNU' '--with-ldap=/usr/local'
'--with-mcrypt=/usr/local'
'--with-mime-magic=/usr/share/misc/magic.mime'
'--with-ming=/usr/local' '--with-mysql=/usr/local'
'--with-mysql-sock=/tmp' '--with-openssl=/usr/local'
'--with-openssl-dir=/usr/local' '--with-pear=/usr/local/lib/php'
'--with-pcre-regex=yes' '--with-pgsql=/usr/local'
'--with-png-dir=/usr/local' '--with-pspell=/usr/local'
'--with-regex=php' '--with-t1lib=/usr/local'
'--with-tiff-dir=/usr/local' '--with-tsrm-pthreads'
'--with-unixODBC=/usr/local' '--with-xmlrpc'
'--with-xpm-dir=/usr/local' '--with-xslt-sablot=/usr/local'
'--with-zip=/usr/local' '--with-zlib=yes' '--with-zlib-dir=/usr'
'i586-jurgys-freebsd5.2.1'
sendmail_path: /var/qmail/bin/qmail-inject
3) We wrote a test script to send mail
#testmail.php
<?
error_reporting(E_ALL);
$result = mail("loc", "Subjet", "Test mail");
if ( $result )
{
echo("Sent");
}
else
{
echo ("Error");
}
?>
--
\I/
/(@ @)\ Greetings from Jurgy
---o00-(_)-00o--------------------
--
\I/
/(@ @)\ Greetings from CyBy
---o00-(_)-00o--------------------
Jurgy Guest
-
qmail?
Ok, well I installed qmail and all that jazz through Matt's Mail toaster. Everything appeared to have been installed without any problems,... -
QMAIL for AIX
Hi, For the inherent bugs and complexity with sendmail, I am considering QMAIL for my AIX servers. Has anyone installed QMAIL on AIX, I tried... -
php & qmail
Hi I'm trying to build a program using PHP to increase the performance of Qmail. I'm trying to use PHP to send an email qmail-remote which... -
Qmail + PHP
On Tuesday 05 August 2003 04:07, Haseeb wrote: Yes. -- Jason Wong -> Gremlins Associates -> www.gremlins.biz Open Source Software Systems... -
exim, postfix or qmail?
Hi group, I have a server running woody and currently I'm using exim v3. I have configured procmail and amavis-ng. However, I'm not that content... -
Manuel #2
Re: Qmail and PHP mail fails. Qmail runs fine - how to debug ?!
Hello,
On 10/29/2004 06:56 AM, Jurgy wrote:
You may want try this class that comes with a sub-class specialized in
deliverying via Qmail using qmail-inject. Just let me know if you still
have problems:
http://www.phpclasses.org/mimemessage
--
Regards,
Manuel Lemos
PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/
PHP Reviews - Reviews of PHP books and other products
http://www.phpclasses.org/reviews/
Metastorage - Data object relational mapping layer generator
http://www.meta-language.net/metastorage.html
Manuel Guest
-
Jurgy #3
Re: Qmail and PHP mail fails. Qmail runs fine - how to debug ?!
On Fri, 29 Oct 2004 14:48:13 -0300, Manuel Lemos <org>
wrote:
>
>You may want try this class that comes with a sub-class specialized in
>deliverying via Qmail using qmail-inject. Just let me know if you still
>have problems:
>
>http://www.phpclasses.org/mimemessage[/ref]
Yes I known this class, and I will see if i can embed it.
However I want to known the source of the problem or I need to update
a whole bunch of scripts. I can sent mail from one system with the
same script and I can't do it on the testing server for some reason,
and I want to find out the source of the problem.
--
\I/
/(@ @)\ Greetings from CyBy
---o00-(_)-00o--------------------
Jurgy Guest
-
Manuel #4
Re: Qmail and PHP mail fails. Qmail runs fine - how to debug ?!
Hello,
On 10/29/2004 02:55 PM, Jurgy wrote:
>>
>>You may want try this class that comes with a sub-class specialized in
>>deliverying via Qmail using qmail-inject. Just let me know if you still
>>have problems:
>>
>>http://www.phpclasses.org/mimemessage[/ref]
>
>
> Yes I known this class, and I will see if i can embed it.
>
> However I want to known the source of the problem or I need to update
> a whole bunch of scripts. I can sent mail from one system with the
> same script and I can't do it on the testing server for some reason,
> and I want to find out the source of the problem.[/ref]
If there is a queueing error, the class will return that error. I am
afraid that the mail() function may just ignore that. So, just try the
class and tell me what happens.
--
Regards,
Manuel Lemos
PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/
PHP Reviews - Reviews of PHP books and other products
http://www.phpclasses.org/reviews/
Metastorage - Data object relational mapping layer generator
http://www.meta-language.net/metastorage.html
Manuel Guest
-
Jurgy #5
Re: Qmail and PHP mail fails. Qmail runs fine - how to debug ?!
On Fri, 29 Oct 2004 15:04:40 -0300, Manuel Lemos <org>
wrote:
>>
>>
>> Yes I known this class, and I will see if i can embed it.
>>
>> However I want to known the source of the problem or I need to update
>> a whole bunch of scripts. I can sent mail from one system with the
>> same script and I can't do it on the testing server for some reason,
>> and I want to find out the source of the problem.[/ref]
>
>If there is a queueing error, the class will return that error. I am
>afraid that the mail() function may just ignore that. So, just try the
>class and tell me what happens.[/ref]
Ok, I took Your class from PHP classes which is indeed nice written.
a) I deinstalled the whole bunch of PHP 4.3.9 with:
pkg_delete -x "php4*"
pkg_delete -x "pecl-*"
rm -d -r /usr/local/lib/php
b) Because I would use some php 5 stuff, I installed PHP, but only the
core from FreeBSD port systems:
cd /usr/ports/lang/php5
make WITH_APACHE=yes PHP_SAPI=full
make WITH_APACHE=yes PHP_SAPI=full install
I copied php.ini-dist to php.ini
and i change
;sendmail_path
into
sendmail_path = /var/qmail/bin/qmail-inject
I write a test.php file with
<?
phpinfo();
?>
c) Some verification of PHP:
# php -v
PHP 5.0.2 (cli) (built: Oct 31 2004 11:12:24) (DEBUG)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.2, Copyright (c) 1998-2004 Zend Technologies
(Ok next time i try WITH_DEBUG=no)
#php -m
[PHP Modules]
libxml
SPL
Standard
#php -f test.php | grep sendmail_path
sendmail_path => /var/qmail/bin/qmail-inject =>
/var/qmail/bin/qmail-inject
(Ok, seems OK)
d) Some verification of my Qmail server
I create a test.eml file with:
<snip>
Message-ID: <be>
Date: Wed, 27 Oct 2004 11:00:37 +0200
From: me <loc>
To: loc
Subject: Lokale test
Helleuu.
</snip>
I test Qmail from shell with:
cat test.eml | /var/qmail/bin/qmail-inject (works)
e) Your classes to sent mail :
http://www.phpclasses.org/browse/package/9/download/zip/name/mimemessage-2004-10-11.zip
I installed those files from Your source:
* email_message.php
* qmail_mail.php
* qmail_message.php
* test_qmail_mail.php
I changed the test_qmail_mail.php with me and me2
And here we go....
#php -f test_qmail_mail.php
Same results, the mail hangs and sits waiting.
No core dumped, it just runs and waits...
What I saw, in the To field i tried to mail a local user. This errors
comes (which should be more in detail) :
Error: the additional parameters that were specified are not supported
So I presume You need to enter a FULL email. However there are
such possibilities as user,user+, &user for local users !!!
besides user@FQDN
Anyway this does not solve my problem. So my opinion, php tries to
use the qmail server and waits to have access to it. qmail-inject can
be executed by others, so I don't see the problem. I think it can't
connect, but I use internal mail injects. :-/
So what next ?
--
\I/
/(@ @)\ Greetings from CyBy
---o00-(_)-00o--------------------
Jurgy Guest
-
Jurgy #6
Re: Qmail and PHP mail fails. Qmail runs fine - how to debug ?!
On Sun, 31 Oct 2004 12:34:09 +0100, Jurgy <jurgen reMovE-This-NoSPam
AT person DOT be> wrote:
>>
>>If there is a queueing error, the class will return that error. I am
>>afraid that the mail() function may just ignore that. So, just try the
>>class and tell me what happens.[/ref]
>
>Ok, I took Your class from PHP classes which is indeed nice written.
>
>a) I deinstalled the whole bunch of PHP 4.3.9 with:
>pkg_delete -x "php4*"
>pkg_delete -x "pecl-*"
>rm -d -r /usr/local/lib/php
>
>b) Because I would use some php 5 stuff, I installed PHP, but only the
>core from FreeBSD port systems:
>
>cd /usr/ports/lang/php5
>make WITH_APACHE=yes PHP_SAPI=full
>make WITH_APACHE=yes PHP_SAPI=full install
>
>I copied php.ini-dist to php.ini
>and i change
>
>;sendmail_path
>
>into
>
>sendmail_path = /var/qmail/bin/qmail-inject
>
>I write a test.php file with
><?
> phpinfo();
>?>
>
>
>c) Some verification of PHP:
>
># php -v
>PHP 5.0.2 (cli) (built: Oct 31 2004 11:12:24) (DEBUG)
>Copyright (c) 1997-2004 The PHP Group
>Zend Engine v2.0.2, Copyright (c) 1998-2004 Zend Technologies
>
>(Ok next time i try WITH_DEBUG=no)
>
>#php -m
>[PHP Modules]
>libxml
>SPL
>Standard
>
>#php -f test.php | grep sendmail_path
>sendmail_path => /var/qmail/bin/qmail-inject =>
>/var/qmail/bin/qmail-inject
>
>(Ok, seems OK)
>
>d) Some verification of my Qmail server
>I create a test.eml file with:
>
><snip>
>Message-ID: <be>
>Date: Wed, 27 Oct 2004 11:00:37 +0200
>From: me <loc>
>To: loc
>Subject: Lokale test
>
>Helleuu.
></snip>
>
>I test Qmail from shell with:
>cat test.eml | /var/qmail/bin/qmail-inject (works)
>
>e) Your classes to sent mail :
>http://www.phpclasses.org/browse/package/9/download/zip/name/mimemessage-2004-10-11.zip
>
>I installed those files from Your source:
>* email_message.php
>* qmail_mail.php
>* qmail_message.php
>* test_qmail_mail.php
>
>I changed the test_qmail_mail.php with me and me2
>And here we go....
>
>#php -f test_qmail_mail.php
>
>Same results, the mail hangs and sits waiting.
>No core dumped, it just runs and waits...
>
>What I saw, in the To field i tried to mail a local user. This errors
>comes (which should be more in detail) :
>
>Error: the additional parameters that were specified are not supported
>
>So I presume You need to enter a FULL email. However there are
>such possibilities as user,user+, &user for local users !!!
>besides user@FQDN
>
>Anyway this does not solve my problem. So my opinion, php tries to
>use the qmail server and waits to have access to it. qmail-inject can
>be executed by others, so I don't see the problem. I think it can't
>connect, but I use internal mail injects. :-/
>
>So what next ?[/ref]
Ok I found something, seems it get stuck into the qmail-queue ?! What
do i need to do ?
I have a problem with the PHP mail() function on a running Qmail
server
on FreeBSD 5.2.1. Pretty like this problem, I found in the mail
archive :
http://lists.freebsd.org/pipermail/freebsd-questions/2003-August/017231.html
Please, can somebody help me out. With this problem and the PHP mail()
function.
OS : FreeBSD 5.2.1
Mailserver: Qmail
PHP : 5.0.2 (4.3.9 same error)
Step 1: Testing of the qmail server in shell:
I create a test.eml file with:
<snip>
Message-ID: <be>
Date: Wed, 27 Oct 2004 11:00:37 +0200
From: me <loc>
To: loc
Subject: Local test
Helleuu.
</snip>
I test the mailserver from shell with:
cat test.eml | /var/qmail/bin/qmail-inject (mail arrives)
cat test.eml | /usr/sbin/sendmail -t -i (mail arrives)
Step 2: I deinstalled the whole bunch of PHP 4.3.9 with:
pkg_delete -x "php4*"
pkg_delete -x "pecl-*"
rm -d -r /usr/local/lib/php /usr/local/include/php
Step 3: Install minimum PHP system.
cd /usr/ports/lang/php5
make WITH_APACHE=yes PHP_SAPI=full
make WITH_APACHE=yes PHP_SAPI=full install
Step 4: Configure right php.ini and verify it works
cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
Change
;sendmail_path
into
sendmail_path = /var/qmail/bin/qmail-inject
(note: same behaviour when i use, or I use ; before sendmail)
sendmail_path = /usr/sbin/sendmail -t -i
qmail-inject can be accessed and executed from others.
Write a test.php with
<?
phpinfo();
?>
# php -v
PHP 5.0.2 (cli) (built: Oct 31 2004 11:12:24) (DEBUG)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v2.0.2, Copyright (c) 1998-2004 Zend Technologies
(Ok next time i try WITH_DEBUG=no)
#php -m
[PHP Modules]
libxml
SPL
Standard
#php -f test.php | grep sendmail_path
sendmail_path => /var/qmail/bin/qmail-inject =>
/var/qmail/bin/qmail-inject
(Ok, seems OK)
Step 5: testing mail from PHP
A simple test2.php:
<?
mail("loc", "Subjet", "Test mail");
?>
#php -f test2.php
->Same results, the script sits waiting/running whatever.
No core dumped, it just runs and waits...
Step 6: Let the script run and try another session
ps -aux and i have this:
(using mailwrapper)
root 8803 0.0 0.9 6152 3440 p0 I+ 4:44PM 0:00.17 php
-f test2.php
root 8804 0.0 0.1 908 332 p0 I+ 4:44PM 0:00.02 sh
-c /usr/sbin/sendmail -t -i
root 8805 0.0 0.2 1256 584 p0 I+ 4:44PM 0:00.08
bin/qmail-inject -H --
qmailq 8806 0.0 0.1 1224 512 p0 I+ 4:44PM 0:00.04
bin/qmail-queue
So the script initiates the wrapper; qmail-inject and qmail-queue)
(using qmailinject directly from php.ini)
root 8962 0.0 0.9 6152 3440 p1 I+ 5:00PM 0:00.16 php
-f testmail.php
root 8963 0.0 0.1 908 332 p1 I+ 5:00PM 0:00.02 sh
-c /var/qmail/bin/qmail-inject
root 8964 0.0 0.2 1256 584 p1 I+ 5:00PM 0:00.03
/var/qmail/bin/qmail-inject
qmailq 8965 0.0 0.1 1224 512 p1 I+ 5:00PM 0:00.03
bin/qmail-queue
In this case the script initiates qmail-inject directly and
qmail-queue)
But why does it stucks, waits and the phpscript keeps running ?
Step 7: Use qmail-inject directly with printout to screen option
Change php.ini with
sendmail_path = /var/qmail/bin/qmail-inject -H -n
#php -f test2.php
Return-Path: <my-mail>
Date: 31 Oct 2004 16:59:51 -0000
Message-ID: <20041031165951.9252.qmail@mydomain>
From: mymail
To: be
Subject: Subjet
Test mail
(and the script does NOT return to the promp)
Step 8: Verify what's going on with qmail-stat in a seconday shell
#/var/qmail/bin/qmail-qstat
messages in queue: 4
--> when the script is started it is raised +1
--> when teh script is stopped it is lowered -1
So the mail get stucks into the queue and refuse to be processed
further.
What to do ?!
--
\I/
/(@ @)\ Greetings from CyBy
---o00-(_)-00o--------------------
Jurgy Guest



Reply With Quote

