aver si me pueden ayudar los maestros de esta comunidad ya questado lellendo y veo que entienden bastante del tema.
Tengo una tienda on-line en un servidor que es windows server, y la programacion es php.
Mi problema es que tanto al hacer una compra como al reguistrarse un usuario me sale este error:
Warning: mail() [function.mail]: SMTP server response: 551 User not local. Authentication required for relay in C:\Inetpub\wwwroot\tersat\html\tienda\frms\contrat ar.php on line 243
Warning: Cannot modify header information - headers already sent by (output started at C:\Inetpub\wwwroot\tersat\html\tienda\frms\contrat ar.php:243) in C:\Inetpub\wwwroot\tersat\html\tienda\frms\contrat ar.php on line 246
------------------------------------------------------------------------------------------
el servidor necesita autenticacion para poder emviar los correos al usuario, y mi duda es como puedo hacer para que la programacion autentifique los correos de salida.
les dejo el php que yo creo que es donde posiblemente se tenga que modificar ya que yo no soy capaz.
Código PHP:
<?
session_start();
include '../inc/config.php';
include '../inc/conn.php';
$con = new Conn($db_host,$db_user,$db_pass,$db_name);
$q = new query($con);
if($_POST['enviar']=="si"){ //INSERTAR
$error = false;
foreach($_POST as $key => $value){
if($key!="dni" && $key!="fax"){
if($value==""){
$error=true;
break;
}
}
}
if(!$error){
$q->exec("SELECT * FROM usuarios WHERE user LIKE '".$_POST['user']."'");
$rc=$q->numrows;
if($rc>0){
header('Location:../index.php?s=micuenta&est=e2');
} else {
if(strlen($_POST['pass']) < 3 || strlen($_POST['pass']) > 8){
header('Location:../index.php?s=micuenta&est=e4');
exit();
}
if(!eregi("[A-Z]",$_POST['pass']) || !ereg("[0-9]",$_POST['pass'])){ // Alfanumerico
header('Location:../index.php?s=micuenta&est=e4');
exit();
}
if($_POST['pass']!=$_POST['pass2']){
header('Location:../index.php?s=micuenta&est=e3');
} else {
$ins = new insert('usuarios',$con);
foreach($_POST as $key => $value){
$ins->col[$key] = $value;
}
$ins->col['fecha'] = date('y-m-d',time());
$ins->update();
$body='
Estimado '.$_POST['nombre'].',
Le damos la bienvenida a $site_url.
Ahora puede disfrutar de los servicios que le ofrecemos. Algunos de estos servicios son:
# Carrito Permanente - Cualquier producto añadido a su carrito permanecera en el hasta que lo elimine, o hasta que realice la compra.
# Historia de Pedidos - Vea la relacion de compras que ha realizado con nosotros.
# Comentarios - Comparta su opinion sobre los productos con otros clientes.
Para cualquier consulta sobre nuestros servicios, por favor escriba a: $admin_email
Nota: Esta direccion fue suministrada por uno de nuestros clientes. Si usted no se ha suscrito como socio, por favor comuniquelo a $admin_email.
';
mail($_POST['email_primario'], "Bienvenido $site_url",$body,"From:$site_url<".$admin_email.">\r\n");
header('Location:../index.php?s=micuenta&est=ok');
}
}
} else {
header('Location:../index.php?s=micuenta&est=e1');
}
}elseif($_POST['mod']=="si"){ // MODIFICAR CLIENTE
$error = false;
foreach($_POST as $key => $value){
if($key!="dni" && $key!="fax" && $key!="pass" && $key!="pass2"){
if($value==""){
$error=true;
break;
}
}
}
if(!$error){
if($_POST['pass']==""){
unset($_POST['pass']);
}else{
if(!eregi("[A-Z]",$_POST['pass']) || !ereg("[0-9]",$_POST['pass'])){ // Alfanumerico
header('Location:../index.php?s=micuenta&est=e4'.$get_id);
exit();
}
}
if($_POST['pass']!=$_POST['pass2']){
header('Location:../index.php?s=micuenta&est=e3'.$get_id);
exit();
} else {
$upd = new doupdate('usuarios',$con,'id',$_POST['id']);
foreach($_POST as $key => $value){
$upd->col[$key] = $value;
}
$upd->update();
header('Location:../index.php?s=micuenta&est=ok'.$get_id);
}
} else {
header('Location:../index.php?s=micuenta&est=e1'.$get_id);
}
}
?>