[ KDane @ 18.02.2013. 14:15 ] @
Ovako imam problem sa PHP mail() funkcijom na serverima gdje hostam web stranicu. Dakle ti serveri ne propuštaju ovu funkciju, odnosno mail poslan sa kontakt forme web stranice nikada ne dođe na specificiranu adresu. Admin kuće u kojoj plaćamo usluge hostinga mi je rekao da je to kod njih iz sigurnosnih razloga zabranjeno i da koristim smtp autentifikaciju.

Imam seljedeći kod koji radi sasvim dobro na drugim serverima, ali mi treba da radi i na ovom koji traži smtp autentifikaciju. Molim da mi pomognete kako da ubacim i taj dio u sljedeći kod:

Code:

<?php
//include the connection file
require_once('connection.php');

//save the data on the DB and send the email
if(isset($_POST['action']) && $_POST['action'] == 'submitform')
{
    //recieve the variables
    
    $name = $_POST['name'];
    $email = $_POST['email'];
    $title = $_POST['title'];
    $comment = $_POST['comment'];
    $ip = gethostbyname($_SERVER['REMOTE_ADDR']);
    
    //save the data on the DB
    
    mysql_select_db($database_connection, $connection);
    
    $insert_query = sprintf("INSERT INTO contacts (name, email, title, comment, date, ip) VALUES (%s, %s, %s, %s, NOW(), %s)",
                            sanitize($name, "text"),
                            sanitize($email, "text"),
                            sanitize($title, "text"),
                            sanitize($comment, "text"),
                            sanitize($ip, "text"));
    
    $result = mysql_query($insert_query, $connection) or die(mysql_error());
    
    if($result)
    {
        //send the email
        
        $to = "[email protected]";
        $subject = "New contact from the website";
        
        
        //headers and subject
        $headers  = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
        $headers .= "From: ".$name." <".$email.">\r\n";
        
        $body = "New contact<br />";
        $body .= "Name: ".$name."<br />";
        $body .= "Email: ".$email."<br />";
        $body .= "Comment: ".$comment."<br />";
        $body .= "IP: ".$ip."<br />";
        
        mail($to, $subject, $body, $headers);
        
        //ok message
        
        echo "Your message has been sent";
    }
}

function sanitize($value, $type) 
{
  $value = (!get_magic_quotes_gpc()) ? addslashes($value) : $value;

  switch ($type) {
    case "text":
      $value = ($value != "") ? "'" . $value . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $value = ($value != "") ? intval($value) : "NULL";
      break;
    case "double":
      $value = ($value != "") ? "'" . doubleval($value) . "'" : "NULL";
      break;
    case "date":
      $value = ($value != "") ? "'" . $value . "'" : "NULL";
      break;
  }
  
  return $value;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TheTechLabs.com - PHP form mail Tutorial</title>
</head>
<body>

<form id="contact" name="contact" action="contact.php" method="post">
<p><label>Name: <input type="text" id="name" name="name" value="" /></label></p>
<p><label>Email: <input type="text" id="email" name="email" value="" /></label></p>
<p><label>Website: <input type="text" id="title" name="title" value="" /></label></p>
<p><label>Comment:<br /><textarea id="comment" name="comment"></textarea></label></p>
<input type="hidden" id="action" name="action" value="submitform" />
<p><input type="submit" id="submit" name="submit" value="Submit" /> <input type="reset" id="reset" name="reset" value="Reset" /></p>
</form>
</body>
</html>
[ duskooo @ 18.02.2013. 21:11 ] @
SMTP autentifikacija iz PHP-a (primer).
[ gotivac @ 22.02.2013. 15:37 ] @
Ako baš hoćeš da se zajebavaš sa PEAR-om, evo ti ovde objašnjeno, pogledaj i poruke pre ove, ali u ovoj je konačno uputstvo koje radi.

Ali bih ti svakako preporučio phpmailer.