tmurphy218 Posted December 5, 2012 Share Posted December 5, 2012 Hello, I have a contact form that uses SMTP authentication. I want the form to be sent from the e-mail address the user enters (so I can hit reply when I get the message) and not from the address used to authenticate. The form works perfectly until I try to get it sent from any other address than the one in the account. Is this possible? I can't image it's not. does anyone have sample code I can view? Thanks. Todd Link to comment https://forums.phpfreaks.com/topic/271624-web-form-with-smtp-authentication/ Share on other sites More sharing options...
Christian F. Posted December 5, 2012 Share Posted December 5, 2012 Set the "reply-to" address instead, as that'll do exactly what you're looking for. Without causing problems with the servers' MTA. Link to comment https://forums.phpfreaks.com/topic/271624-web-form-with-smtp-authentication/#findComment-1397651 Share on other sites More sharing options...
tmurphy218 Posted December 5, 2012 Author Share Posted December 5, 2012 Thank you Christian. as I am new to PHP might I ask anyone to help with implementing the Reply-to? I've tried and keep missing something. My form is coming from TEST<[email protected]> - as shown in below code but I need it to come from $email so that when the e-mail is replied to it goes to that address, not TEST<[email protected]>. This is my original code. Thank you! <?php if(isset($_POST['email'])) { function died($error) { // your error code can go here echo "We are very sorry, but there were error(s) found with the form you submitted. "; echo "These errors appear below.<br /><br />"; echo $error."<br /><br />"; echo "Please go back and fix these errors.<br /><br />"; die(); } // validation expected data exists if(!isset($_POST['contact_name']) || !isset($_POST['email']) || !isset($_POST['telephone']) || !isset($_POST['comments'])) { died('We are sorry, but there appears to be a problem with the form you submitted.'); } $contact_name = $_POST['contact_name']; // required $email_from = $_POST['email']; // required $telephone = $_POST['telephone']; // required $comments = $_POST['comments']; // not required $error_message = ""; $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email_from)) { $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; } $string_exp = "/^[A-Za-z 0-9.'-]+$/"; if(!preg_match($string_exp,$contact_name)) { $error_message .= 'The Contact Name you entered does not appear to be valid.<br />'; } if(!preg_match($string_exp,$telephone)) { $error_message .= 'The Telephone # you entered does not appear to be valid.<br />'; } if(strlen($error_message) > 0) { died($error_message); } $email_message = "Form details below.\n\n"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "Contact Name: ".clean_string($contact_name)."\n"; $email_message .= "Email: ".clean_string($email_from)."\n"; $email_message .= "Telephone: ".clean_string($telephone)."\n"; $email_message .= "Comments: ".clean_string($comments)."\n"; ini_set('display_errors',1); error_reporting(E_ALL); require_once "Mail.php"; $from = "TEST<[email protected]>"; $to = "<[email protected]>"; $subject = "Test message"; $body = "$email_message"; $host = "mail.xxxxxxxx.com"; $username = "[email protected]"; $password = "xxxxxxxxxx"; $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject); $smtp = Mail::factory('smtp', array ('host' => $host, 'auth' => true, 'username' => $username, 'password' => $password)); $mail = $smtp->send($to, $headers, $body); if (PEAR::isError($mail)) { echo("<p>" . $mail->getMessage() . "</p>"); } else { echo("<p></p>"); } ?> <!-- include your own success html here --> message sent <?php } ?> Link to comment https://forums.phpfreaks.com/topic/271624-web-form-with-smtp-authentication/#findComment-1397656 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.