uaintgotthisid Posted January 19, 2009 Share Posted January 19, 2009 Hi all, accept my gratitude in advance.I've finally conquered what appears to be a problem I was having regarding SMTP e-mail. Hurruh. I am able to send myself e-mails via mywebsite. Brilliant.Next thing. The e-mails appear to be delivered with the header e-mailedperson@manclinux2.networkdns.biz/I'm pretty sure that's my hosts server. (a linux machine based in Manchester). Anyway for my own personal website I guess it's tollerable, however, should I reuse this method in another site it would be more problematic. Mainly because it looks like spam and could get deleted, it would confuse some users, and quite frankly it's unprofessional. This happened because I didn't put in a full e-mail address. I shall put validation scripting to stop this. However, I would still prefer as a failsafe to change this default if possible.I have come to the conlusion that it's an automatically set header which generates a rather longer, and probably more specific e-mail address than I am used to seeing.Ideas/Suggestions please<html><head><title> Sample E-mail Page </title></head><body><?php// Read POST request params into global vars$to = $_POST['to'];$from = $_POST['from'];$subject = $_POST['subject'];$message = $_POST['message'];// Obtain file upload vars$fileatt = $_FILES['fileatt']['tmp_name'];$fileatt_type = $_FILES['fileatt']['type'];$fileatt_name = $_FILES['fileatt']['name'];$headers = "From: $from";if (is_uploaded_file($fileatt)) { // Read the file to be attached ('rb' = read binary) $file = fopen($fileatt,'rb'); $data = fread($file,filesize($fileatt)); fclose($file); // Generate a boundary string $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // Add the headers for a file attachment $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; // Add a multipart boundary above the plain message $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n"; // Base64 encode the file data $data = chunk_split(base64_encode($data)); // Add file attachment to the message $message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" . " name=\"{$fileatt_name}\"\n" . //"Content-Disposition: attachment;\n" . //" filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n";}// Send the message$ok = @mail($to, $subject, $message, $headers);if ($ok) { echo "<p>Your Mail has been sent! We will be in contact soon.</p>";} else { echo "<p>Mail could not be sent. Sorry! Feel free to contact us directly <a href='mailto:blah@exampleemail.com'> </a></p>";}?></body></html> Link to comment Share on other sites More sharing options...
jeffman Posted January 19, 2009 Share Posted January 19, 2009 See what happens if you add a Reply-To: header. Link to comment Share on other sites More sharing options...
Ingolme Posted January 20, 2009 Share Posted January 20, 2009 You could add a "From" header to your E-mail. Link to comment Share on other sites More sharing options...
justsomeguy Posted January 20, 2009 Share Posted January 20, 2009 $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; Headers must be separated with \r\n, not just \n. Make sure the syntax for your mime boundary headers is correct also. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.