Sending Emails

Status
Not open for further replies.

Lewis1682

New Member
Messages
3
Reaction score
0
Points
1
Hey, is a email server attached to the free hosting accounts to be able to send emails using PHP, if so how long does it normally take to send?
 

btlclanx

Member
Messages
31
Reaction score
0
Points
6
Yes you can send emails through php using the mail function, normally i get an email within 2 minutes.
 

Lewis1682

New Member
Messages
3
Reaction score
0
Points
1
I haven't received my emails yet. Here is the code I am using.
PHP:
<?php
if(isset($_POST['email'])) {
    // Here is the email to information   
    $email_to = "blank@blank.com";
    $email_subject = "Website Contact Form";
    $email_from = "Coach House Clinic";
   
    //error Code
   
    function died($error){
        echo "We are sorry, but there were error(s) found in the form";
        echo "These errors appear below.<br/><br/>";
        echo $error. "<br/><br/>";
        echo "Please go back and fic these errors.<br/>";
        die();
    }
    //Validation
   
    if(!isset($_POST['name']) ||
    !isset($_POST['email']) ||
    !isset($_POST['message'])) {
        died('We are sorry but there appears to be a problem with the form you submitted.');
    }
   
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message= $_POST['message'];
   
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
    if(!preg_match($email_exp, $email)) {
        $error_message .='The Email address you entered does not appear to be valid<br/>';
    }
    $string_exp = "/^[A-Za-z.'-]+$/";
    if(!preg_match($string_exp, $name)) {
        $error_message .= 'The Name you entered does not appear to be valid.<br/>';
    }
    if(strlen($message) < 2) {
        $error_message .= 'The Message you entered is not 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 .= "Name:" .clean_string($name) . "\n";
    $email_message .= "Email:" .clean_string($email) . "\n";
    $email_message .= "Message:" .clean_string($message) . "\n";
   
    //create email headers
    $headers = 'From: ' .$email_from . "\r\n". 'Reply-to:' .$email. "\r\n" .
    'X-Mailer: PHP/' .phpversion();
    @mail($email_to, $email_subject, $email_message, $headers);
   
    header("Location: thankyou.html");

}

?>

Just a little note I have censored my email address out, is it possible I am on a blacklist at all?

Thanks.
 

bdistler

Well-Known Member
Prime Account
Messages
3,534
Reaction score
196
Points
63
In short --> yes

I have a PHP script hits-counter that sends me a Email each time someone 'hits' my site
time for me to receive it for the most part is less than a minute - but the Email server is down from time to time
also times like now - I receive it in my account's inbox - but can not send it to Email address outside of my account on server Level
 

bdistler

Well-Known Member
Prime Account
Messages
3,534
Reaction score
196
Points
63
Sorry after I made the above post - your code was posted
I assumed you were asking about the PHP function [ mail() ]

Atmail is a commercial Linux messaging platform provider - which you are trying to use - I do not think free-hosting has it set up
 

btlclanx

Member
Messages
31
Reaction score
0
Points
6
Try this code in a file called contact.php it is simple and works. You can easily customize this if you want.

Make sure to change the $webmaster email to where you want it to be sent.

There is no proper email validation on this script so you need to add it.

PHP:
<?php
echo "<font color='red'>*</font> means required<br />"; 
 
    $form ="<form action='contact.php' method='post'>
    <table>
    <tr>
        <td>Full Name<font color='red'>*</font></td>
        <td><input type='text' name='name' size='40'></td>
    </tr>
    <tr>
        <td>Email<font color='red'>*</font></td>
        <td><input type='text' name='email' class='textbox' size='100'></td>
    </tr>
    <tr>
        <td>Message<font color='red'>*</font></td>
        <td><textarea type='text' name='message' class='textbox' rows='7' cols='31.5'></textarea></td>
    </tr> 
    <tr>
        <td></td>
        <td><input type='submit' name='submitbtn' value='Send'></td>
    </tr> 
    </table>
    </form>";
 
    if ($_POST['submitbtn']){
        $name = $_POST['name'];
        $email = $_POST['email'];
        $msg .= $_POST['message'];
     
        if($name && $email && $msg){
     
            if(strstr($email, "@") && strstr($email, ".")){
                $ip = $_SERVER["REMOTE_ADDR"];
                $webmaster = "youremail@here.com";
                $headers = "From: $name <$email>";
                $subject = "Form Submission By $name\n";
                $message .= "Form submission from '$name'\n \n";
                $message .= "Message: '$msg'";
                $message .= "\n \n";
                $message .= "IP: $ip";
             
                mail($webmaster, $subject, $message, $headers);
             
                echo "<b>You Message Has Been Sent!</b> $form";
         
            }
            else
                echo "<b>You have not entered a valid email.</b> $form";
     
        }
        else
            echo "<b>You have not entered all the fields. </b>$form";
    }
    else
        echo "$form";
 
 
    ?>

Good Luck
 

Lewis1682

New Member
Messages
3
Reaction score
0
Points
1
I completely changed the way my contact form now works, when I set the email to send to a email account inside my hosting account it sends instantly, however the email that is meant to be sent to the user is never recieved if it is outside the hosting email address. Is this because the emails cannot leave the server because it is a free hosting account or is there some huge queue or something.


Thanks,
 
Status
Not open for further replies.
Top