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
SMRSH(8)						      System Manager's Manual							  SMRSH(8)

NAME
smrsh - restricted shell for sendmail SYNOPSIS
smrsh -c command DESCRIPTION
The smrsh program is intended as a replacement for sh for use in the ``prog'' mailer in sendmail(8) configuration files. It sharply limits the commands that can be run using the ``|program'' syntax of sendmail in order to improve the over all security of your system. Briefly, even if a ``bad guy'' can get sendmail to run a program without going through an alias or forward file, smrsh limits the set of programs that he or she can execute. Briefly, smrsh limits programs to be in a single directory, by default /usr/lib/sendmail.d/bin/ allowing the system administrator to choose the set of acceptable commands, and to the shell builtin commands ``exec'', ``exit'', and ``echo''. It also rejects any commands with the characters ``', `<', `>', `;', `$', `(', `)', ` ' (carriage return), or ` ' (newline) on the command line to prevent ``end run'' attacks. It allows ``||'' and ``&&'' to enable commands like: ``"|exec /usr/local/bin/filter || exit 75"'' Initial pathnames on programs are stripped, so forwarding to ``/usr/bin/vacation'', ``/usr/bin/vacation'', ``/home/server/mydir/bin/vaca- tion'', and ``vacation'' all actually forward to `/usr/lib/sendmail.d/bin/vacation''. System administrators should be conservative about populating the /usr/lib/sendmail.d/bin/ directory. For example, a reasonable additions is vacation(1), and the like. No matter how brow-beaten you may be, never include any shell or shell-like program (such as perl(1)) in the /usr/lib/sendmail.d/bin/ directory. Note that this does not restrict the use of shell or perl scripts in the /usr/lib/sendmail.d/bin/ directory (using the ``#!'' syntax); it simply disallows execution of arbitrary programs. Also, including mail filtering programs such as procmail(1) is a very bad idea. procmail(1) allows users to run arbitrary programs in their procmailrc(5). COMPILATION
Compilation should be trivial on most systems. You may need to use -DSMRSH_PATH="path" to adjust the default search path (defaults to ``/bin:/usr/bin'') and/or -DSMRSH_CMDDIR="dir" to change the default program directory (defaults to ``/usr/lib/sendmail.d/bin/''). FILES
/usr/lib/sendmail.d/bin/ - default directory for restricted programs on SuSE Linux SEE ALSO
sendmail(8) $Date: 2004/08/06 03:55:35 $ SMRSH(8)