Caligator82 Posted August 7, 2015 Share Posted August 7, 2015 I want to have my sendmail.php send to two emails. I have tried 'joe@example.com,steve@example.com' and "joe@example.com,steve@example.com" and 'joe@example.com, steve@example.com' and different combinations. Here is the script. I always get the first email but never the second. Thanks. <?php // Email address verification function isEmail($email) { return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i", $email)); } if($_POST) { // Enter the email where you want to receive the message $emailTo = 'marshall@firstarriving.com,mspevak@hendonpub.com'; $clientName = addslashes(trim($_POST['name'])); $clientEmail = addslashes(trim($_POST['email'])); $subject = addslashes(trim($_POST['subject'])); $message = addslashes(trim($_POST['message'])); $array = array(); $array['nameMessage'] = ''; $array['emailMessage'] = ''; $array['messageMessage'] = ''; if($clientName == '') { $array['nameMessage'] = 'Please enter your name.'; } if(!isEmail($clientEmail)) { $array['emailMessage'] = 'Please insert a valid email address.'; } if($message == '') { $array['messageMessage'] = 'Please enter your message.'; } if($clientName != '' && isEmail($clientEmail) && $message != '') { // Send email $headers = "From: " . $clientName . " <" . $clientEmail . ">" . "\r\n" . "Reply-To: " . $clientEmail; mail($emailTo, $subject . ' - Copeland Form Data', $message, $headers); } echo json_encode($array); } ?> Quote Link to comment Share on other sites More sharing options...
iarp Posted August 7, 2015 Share Posted August 7, 2015 Try a comma followed by a space and then the next email address. "email1@domain.com, email2@domain.com" Quote Link to comment Share on other sites More sharing options...
Caligator82 Posted August 7, 2015 Author Share Posted August 7, 2015 Thanks. I would have hoped that would work... but it did not. I only got the first address email. Maybe because this php script formulates the header it can only send to one email address?? Not sure but I wish I could sent it to two. Below is what I put in. Thanks. if($_POST) { // Enter the email where you want to receive the message $emailTo = "marshall@firstarriving.com, mspevak@hendonpub.com"; $clientName = addslashes(trim($_POST['name'])); Quote Link to comment Share on other sites More sharing options...
mac_gyver Posted August 7, 2015 Share Posted August 7, 2015 you are likely running up against a relaying restriction on your mail server, due to the neither of the TO: or FROM: address being hosted at the sending mail server. i'm betting that for the case where it sends the email, the TO: address is hosted at the sending mail server and for the case where it doesn't send, the TO: address is not hosted at the sending mail server? if you turn on php's full error_reporting/display_errors settings, you will likely be getting an error that points to the problem. the email is NOT BEING SENT FROM the person who entries their email address in your form. the email is being sent FROM your sending mail server (even if you are sending it to an address at that same mail server.) the From: email address must be an address hosted at your sending mail server or you need appropriate DNS records at the domain being put into the From: email address that says that your sending mail server is authorized to send email for that domain. only the REPLY-TO: address should be the email that was entered in your form. Quote Link to comment Share on other sites More sharing options...
Caligator82 Posted August 7, 2015 Author Share Posted August 7, 2015 You are exactly right. When I put in the sendmail.php TOemails addresses other than my own, both emails get sent and I receive them. I am doing this for a customer and I guess I cannot test it from his server with my email address. Could you please test the form and I will see if I get both emails. Thanks. http://cope-eng.com/new15/contact.html Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.