PHP piping mail to sendmail quickly


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers PHP piping mail to sendmail quickly
# 1  
Old 03-11-2006
PHP piping mail to sendmail quickly

In order to prevent any php processes on our web server from waiting
for sendmail hangups (name resolution issues, etc), we wrap sendmail
in a simple shell script and push it to the background and disown the
process so that any php script on our site can continue on processing
code and not have to wait for sendmail to return.

So, in php.ini we have the following setting:

sendmail_path = "/usr/local/bin/phpsendmail.sh -t -i"

and in phpsendmail.sh we have the following:

#!/bin/bash
cat /dev/stdin | /usr/bin/sendmail "$@" &


The problem we are encountering is that it seems to take quite a while
(in computer time) for a lengthy (50K) text email to actually get
piped into sendmail this way. When a script pushes out 20 emails of
this size, we are seeing it take approximately 20-25 seconds. We have
some background processes that send need to send batched email from a
database table (for immediate delivery, not queued) and we would like
to speed the process up, while still using this concept of pushing
each sendmail process out to the background. What can we do to speed
up the process of piping this information through the wrapper script
and into the sendmail process?

Thanks in advance for any advice....

GM
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Web Development

Gmail very slow to receive Sendmail/PHP Mail

Okay, I have searched the forums and couldn't really find a topic on this, so I decided to start one. But I decided to start a ncurses discussion forum recently and one thing I noticed while getting it going is that when mail is sent out via Sendmail or PHP Mail, Gmail is /very/ slow to receive it.... (2 Replies)
Discussion started by: Phobos D'thorga
2 Replies

2. Proxy Server

How to send mail (sendmail) for php mail()?

PHP mail() function doesn't work. Nor does sendmail: loaded system configuration file /etc/msmtprc ignoring user configuration file /home/xi/.msmtprc: No such file or directory falling back to default account using account default from /etc/msmtprc host = xsi port = 25 proxy host = (not... (1 Reply)
Discussion started by: Xcislav
1 Replies

3. Shell Programming and Scripting

mail or sendmail ?

1. I need to send emails using a shell script on linux. I want to use the most widespread method (the preferred method). Is one considered deprecated in favor of the other? Which, mail or sendmail ? 2. Now, without trying to favor mail in the first question: How can I include a From: mail... (1 Reply)
Discussion started by: limmer
1 Replies

4. UNIX for Advanced & Expert Users

Piping Mail with Exim Only Works Locally

Whenever I send an email to my catchall alias via SSH (i.e., locally), Exim successfully pipes the e-mail to a PHP script, as I told it to do. However, when I try to send an e-mail to my catchall alias via my e-mail client (i.e., remotely), Exim won't pipe the e-mail. Any ideas? My exim.conf... (0 Replies)
Discussion started by: Zhay
0 Replies

5. Linux

Restrict mail from Sendmail

Hello All, i have configured sendmail and trying to set a limit on mail Ex: If i have send any mail to a email-if that doesn'e exists, i want that after trying for 3 days it should stops sending that mail to user and send a mail to the sender that " sending mail failed , any messaged... (1 Reply)
Discussion started by: saurabh84g
1 Replies

6. Shell Programming and Scripting

piping output from PHP file into variable

Hi. I have a script like so: #!/bin/bash download='php /var/www/last.php' echo $download if $downloadHow do I pipe the output of the php file into a variable, as when i run the if statement, it just echos the file output to the screen and does not actually consider the output (it will be... (2 Replies)
Discussion started by: daydreamer
2 Replies

7. Solaris

sendmail mail server help

Hello guys, Am trying to enable/start sendmail in Solaris 10. I tried using scvadm and also did it using the /etc/init.d/sendmail restart but no effect. Just returns to the prompt. No errors nothing. I checked if it is running using ps -eaf | grep sendmail, not running :( . I checked the logs... (9 Replies)
Discussion started by: rcmrulzz
9 Replies

8. UNIX for Dummies Questions & Answers

need solution for this quickly. please quickly.

Write a nawk script that will produce the following report: ***FIRST QUARTERLY REPORT*** ***CAMPAIGN 2004 CONTRIBUTIONS*** ------------------------------------------------------------------------- NAME PHONE Jan | ... (5 Replies)
Discussion started by: p.palakj.shah
5 Replies

9. UNIX for Dummies Questions & Answers

Sendmail - forwarding mail

quick question. I have a webserver that has various scripts for user registration and ect on it. I want to post (mail) these to myself - however I am a bit stuck on how to configure sendmail to do this. The hosting partner that I use has provided me with the use of their relay to send on the... (1 Reply)
Discussion started by: warrend
1 Replies

10. UNIX for Dummies Questions & Answers

blocking mail using sendmail

Hi, I am using sendmail 8.9.1 and trying to block email from certain domain/user. How could I do that? TQ (4 Replies)
Discussion started by: liyas
4 Replies
Login or Register to Ask a Question
RC.SENDMAIL(8)						    BSD System Manager's Manual 					    RC.SENDMAIL(8)

NAME
rc.sendmail -- sendmail(8) startup script DESCRIPTION
The rc.sendmail script is used by /etc/rc at boot time to start sendmail(8). It is meant to be sendmail(8) specific and not a generic script for all MTAs. It is only called by /etc/rc if the rc.conf(5) mta_start_script variable is set to /etc/rc.sendmail. The rc.sendmail script can take an optional argument specifying the action to perform. The available actions are: start Starts both the MTA and the MSP queue runner. stop Stops both the MTA and the MSP queue runner. restart Restarts both the MTA and the MSP queue runner. start-mta Starts just the MTA. stop-mta Stops just the MTA. restart-mta Restarts just the MTA. start-mspq Starts just the MSP queue runner. stop-mspq Stops just the MSP queue runner. restart-mspq Restarts just the MSP queue runner. If no action is specified, start is assumed. The rc.sendmail script is also used by /etc/mail/Makefile to enable the Makefile's start, stop, and restart targets. RC.CONF VARIABLES The following variables affect the behavior of rc.sendmail. They are defined in /etc/defaults/rc.conf and can be changed in /etc/rc.conf. sendmail_enable (str) If set to ``YES'', run the sendmail(8) daemon at system boot time. If set to ``NO'', do not run a sendmail(8) daemon to listen for incoming network mail. This does not preclude a sendmail(8) daemon listening on the SMTP port of the loopback interface. The ``NONE'' option is deprecated and should not be used. It will be removed in a future release. sendmail_cert_create (str) If sendmail_enable is set to ``YES'', create a signed certificate /etc/mail/certs/host.cert representing /etc/mail/certs/host.key by the CA certificate in /etc/mail/certs/cacert.pem. This will enable connecting hosts to negotiate START- TLS allowing incoming email to be encrypted in transit. sendmail(8) needs to be configured to use these generated files. The default configuration in /etc/mail/freebsd.mc has the required options in it. sendmail_cert_cn (str) If sendmail_enable is set to ``YES'' and sendmail_cert_create is set to ``YES'', this is the Common Name (CN) of the certifi- cate that will be created. If sendmail_cert_cn is not set, the system's hostname will be used. If there is no hostname set, ``amnesiac'' will be used. sendmail_flags (str) If sendmail_enable is set to ``YES'', these are the flags to pass to the sendmail(8) daemon. sendmail_submit_enable (bool) If set to ``YES'' and sendmail_enable is set to ``NO'', run sendmail(8) using sendmail_submit_flags instead of sendmail_flags. This is intended to allow local mail submission via a localhost-only listening SMTP service required for running sendmail(8) as a non-set-user-ID binary. Note that this does not work inside jail(2) systems, as jails do not allow binding to just the localhost interface. sendmail_submit_flags (str) If sendmail_enable is set to ``NO'' and sendmail_submit_enable is set to ``YES'', these are the flags to pass to the sendmail(8) daemon. sendmail_outbound_enable (bool) If set to ``YES'' and both sendmail_enable and sendmail_submit_enable are set to ``NO'', run sendmail(8) using sendmail_outbound_flags instead of sendmail_flags. This is intended to allow local mail queue management for systems that do not offer a listening SMTP service. sendmail_outbound_flags (str) If both sendmail_enable and sendmail_submit_enable are set to ``NO'' and sendmail_outbound_enable is set to ``YES'', these are the flags to pass to the sendmail(8) daemon. sendmail_msp_queue_enable (bool) If set to ``YES'', start a client (MSP) queue runner sendmail(8) daemon at system boot time. As of sendmail 8.12, a separate queue is used for command line submissions. The client queue runner ensures that nothing is left behind in the submission queue. sendmail_msp_queue_flags (str) If sendmail_msp_queue_enable is set to ``YES'', these are the flags to pass to the sendmail(8) daemon. These variables are used to determine how the sendmail(8) daemons are started: # MTA if (${sendmail_enable} == NONE) # Do nothing else if (${sendmail_enable} == YES) start sendmail with ${sendmail_flags} else if (${sendmail_submit_enable} == YES) start sendmail with ${sendmail_submit_flags} else if (${sendmail_outbound_enable} == YES) start sendmail with ${sendmail_outbound_flags} endif # MSP Queue Runner if (${sendmail_enable} != NONE && [ -r /etc/mail/submit.cf] && ${sendmail_msp_queue_enable} == YES) start sendmail with ${sendmail_msp_queue_flags} endif To completely prevent any sendmail(8) daemons from starting, you must set the following variables in /etc/rc.conf: sendmail_enable="NO" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" SEE ALSO
rc.conf(5), rc(8), sendmail(8) HISTORY
The rc.sendmail file appeared in FreeBSD 4.6. BSD
October 19, 2013 BSD