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

NAME
mailsetup - Configures the host's mail system SYNOPSIS
/usr/sbin/mailsetup [-f file] OPTIONS
Specifies the name of the resulting configuration file. DESCRIPTION
The mailsetup script sets up the sendmail system on your host. You can use this script to do a quick setup where defaults are used or to do a more extensive setup. Alternatively, you can use the mailconfig command. Before you run the mailsetup script, your machine should be established on a local area network (LAN). If you want to use domain-based addressing, you must also configure the Berkeley Internet Name Domain (BIND) service in your environment. Furthermore, if you want to dis- tribute your /var/adm/sendmail/aliases database (see aliases(4)) amongst the machines in your environment, you must configure the Network Information Service (NIS). See the Network Administration guide, bind_intro(7), and nis_intro(7) for more information about the BIND and NIS services. For a quick setup, the only information you are asked for is the name of the mail relay you are using and which users are considered local. For the more extensive setup, you are asked for the same information in addition to UUCP, DECnet, and UMC configuration information, mail aliases for your machine, local address formats, and other domain information. You must run the mailsetup script as superuser and with the system in multiuser mode. When you run mailsetup a menu is displayed giving you a choice of responses. You are then prompted for further information. If you do not use the -f option, before mailsetup exits, it asks if you wish to restart your mail with this new configuration. If you answer no, your configuration file is saved in /var/adm/sendmail/sendmail.cf.tmp and the install is aborted. If you answer yes, your /var/adm/sendmail/sendmail.cf file is moved to /var/adm/sendmail/sendmail.cf.orig, if no file by this name exists. If /var/adm/send- mail/sendmail.cf.orig exists, /var/adm/sendmail/sendmail.cf is moved to /var/adm/sendmail/sendmail.cf.n, where n is the version number (0 to 6 where 0 is the most recent). The new configuration file is then moved to /var/adm/sendmail/sendmail.cf and sendmail is restarted. If you use the -f option, the configuration file is saved with the file name specified and sendmail is not restarted. The mailsetup script produces the following three files in /var/adm/sendmail: sendmail.m4 hostname.m4 Makefile.cf.hostname You can fine tune your configuration by modifying the hostname.m4 file and issuing a make -f Makefile.cf.hostname command, which produces a hostname.cf file. You can then copy the hostname.cf file to sendmail.cf and restart sendmail using the /sbin/init.d/sendmail restart com- mand. Running mailsetup To set up your mail system using the mailsetup script, log in as root and complete the following steps: Invoke the mailsetup script. The script asks whether you want to do a quick setup. If you answer yes, the mailsetup script prompts you for the following information: The name of the general-purpose relay If you want to modify the list of aliases and users that are considered local If you want to complete the mail setup To do an advanced mail setup, answer no. The mailsetup script prompts you for the information you collected on the worksheet. When you finish providing the information, the mailsetup script asks if you want to complete the configuration. If you answer yes, the script moves the new sendmail.cf file to the system space, saves the old sendmail.cf file, and restarts sendmail. If you answer no, the script moves the new sendmail.cf file to /var/adm/sendmail/sendmail.cf.tmp and exits. Running mailsetup in a TruCluster Server Cluster The following restrictions apply to setting up mail with the mailsetup script in a TruCluster Server cluster: You can run the mailsetup script on an entire cluster, but not focused on any one cluster member. If you try to run mailsetup with the -focus option, you will see the following error message: Mail can only be configured for the entire cluster. The cluster members and the cluster alias are added to the Cw macro, which defines the nicknames for the cluster. If you delete the cluster members or the cluster alias from the nicknames list via the mailsetup script, they are added again. If you do a quick setup with the mailsetup script, the cluster members and the cluster alias are automically added to the Cw macro (nicknames list) and you are not prompted to update the list of nicknames. Any file that includes the hostname string as part of the file name is changed to includecluster_alias. For example, hostname.m4 becomes cluster_alias.m4 and Makefile.cf.hostname becomes Makefile.cf.cluster_alias. FILES
Contains alias definitions for the sendmail program. Specifies the users who should receive mail on the local host. Specifies the send- mail configuration file. Specifies the mail setup product description for the configuration file. Specifies the backup configuration files. Specifies the original configuration file. Specifies the configuration file produced by mailsetup. Specifies the user config- urable file produced by mailsetup. In a TruCluster Server cluster, this file is named after the cluster alias, i.e., cluster_alias.m4. Specifies the Makefile file produced by mailsetup and used to make a hostname.cf file from the sendmail.cf and hostname.m4 files. In a Tru- Cluster Server cluster, this file is named after the cluster alias, i.e., Makefile.cf.cluster_alias. SEE ALSO
Commands: m4(1), , mailconfig(8), sendmail(8) Introductions: mail_intro(7), bind_intro(7), nis_intro(7) Network Administration mailsetup(8)