Foros del Web » Programando para Internet » PHP »

[email protected]

Estas en el tema de [email protected] en el foro de PHP en Foros del Web. Tengo un sistema de email pero php.ini envía los mail como [email protected] . El servidor obviamente no es mio sino ya huviese cambiado ese archivo. ...
  #1 (permalink)  
Antiguo 15/02/2005, 06:26
 
Fecha de Ingreso: diciembre-2004
Mensajes: 12
Antigüedad: 13 años
Puntos: 0

Tengo un sistema de email pero php.ini envía los mail como [email protected]. El servidor obviamente no es mio sino ya huviese cambiado ese archivo.

Sin embargo tengo dos scripts uno me envía los mail con el correo correcto. El otro como ya dije no. Yo practicamente no se nada de PHP.asi que no encuentro la respuesta.

Este es el codido del que no funciona bien:


____________________________

function Mail( $from, $to, $subject, $message ){


$headers = "De: Mi dominio <".$from.">\n";
$headers .= "Reply-To: <".$from.">\n";
$headers .= "X-Sender: <".$from.">\n";
$headers .= "X-Mailer: PHP4\n"; //mailer
$headers .= "X-Priority: 3\n"; //1 UrgentMessage, 3 Normal
$headers .= "Return-Path: <".$from.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "Bcc: [email protected]"."\n";

if( function_exists( "mail" ) )
mail( $to, $subject, $message, $headers );
}


_____________________________________________


Alguien aqui tiene idea de como arreglar este codigo para que me envie los mail con mi correo oficial.

Les agradezco en el alma su apoyo.


Charlie
  #2 (permalink)  
Antiguo 15/02/2005, 08:32
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Y cual es el script que si te lo envia bien?

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 15/02/2005, 08:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Debes indicar un FROM com cabereca para tu e-mail .. sino asume la que la configuración de tu servidor SMTP use por defecto o bien la que se le indica a PHP que use en tal caso.

send_mail_from si mal no recuerdo de tu php.ini

Lo recomendable es que uses una cabecera FROM:
Código PHP:
$headers .= "From: nose <[email protected]>\n"
Esto no es correcto:
$headers = "De: Mi dominio <".$from.">\n";

Esos "header" son cabeceras del protocolo SMTP .. De -> FROM y con la sintax que ahí usas.

Un saludo,

Última edición por Cluster; 15/02/2005 a las 08:48
  #4 (permalink)  
Antiguo 15/02/2005, 08:48
 
Fecha de Ingreso: diciembre-2004
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Son un poco de archivos.

Te incluyo el principal que coordina todos los mails del maillist.

_______________________________________________-


<?php
/* main directory */
require("globals.php");
/* appropiate language select */
$img_main_dir=$main_dir;
if(isset($_GET['popwin']) ) $main_dir="";
//echo "test";

if(is_file($main_dir."lang/".$lang))
{
require($main_dir."lang/".$lang);
}else require($main_dir."lang/lang_spanish.php");

$frontpage=true;
include("inc/initdb.php");

if(!isset($view_type)){ $view_type="main";}


/* get the variables */

if(isset($_POST['subscribe']))$subscribe=$_POST['subscribe'];
else $subscribe=$_GET['subscribe'];
if(isset($_POST['email']))$email=$_POST['email'];
else $email=$_GET['email'];
if(isset($_POST['name']))$name=$_POST['name'];
else if(isset($_GET['name'])) $name=$_GET['name'];
else $name="";
if(isset($_POST['group']))$group=$_POST['group'];
else $group=$_GET['group'];



if(isset($_GET['verify']))$verify=$_GET['verify'];
else $verfiy='';

/* Check for existence */
$email_exists=false;
$sql = "SELECT * FROM wiml_maillist WHERE email_address = '".$email."' AND group_id =".$group;
if($recordset=$conn->Execute($sql))
{
if( $recordset->RecordCount() > 0 ) {
$email_exists=true;
$ers=$recordset->GetArray();
}
}
/* print($num);
print($base_file->entries());
*/
{
if( $subscribe=="true" && $email_verify=="no" )
{
if($email_exists){
/* email already excists display error*/
include ($main_dir."inc/email_exist.php");
return;
}
else {
/* register email and display thanks */
$sql = "INSERT INTO wiml_maillist (email_name,email_address,email_ip,email_date,grou p_id)";
$sql .= "VALUES ('".$name."', '".$email."', '".$_SERVER['REMOTE_ADDR']."', '".time()."', $group)";
$conn->Execute($sql);
if($email_thank=="yes")
{
$mailheaders="Return-path: $email_name <$email_email>\n";
$mailheaders.="From: $email_name <$email_email>\n";
$mailheaders.="Reply-To: $email_name\n";
$mailheaders.="X-Mailer: $website\n";
$mailheaders.="X-Return-Path: $email_email\n";
mail($email,$email_thank_title,$email_thank_messag e,$mailheaders);
}
include ($main_dir."inc/email_thanks.php");
return;
}
}
elseif($subscribe=="true" && $email_verify=="yes" && strlen($verify) == 0)
{
$makepass="";
$salt = "abchefghjkmnpqrstuvwxyz0123456789";
srand((double)microtime()*1000000);
$i = 0;
while ($i <= 8) {
$num = rand() % 33;
$tmp = substr($salt, $num, 1);
$makepass = $makepass . $tmp;
$i++;
}
$sql = "INSERT INTO wiml_verify (email_name,email_address,group_id,rand_str)";
$sql .= "VALUES ('$name','$email',$group,'$makepass')";
$conn->Execute($sql);
echo $conn->ErrorMsg();
$mailheaders="Return-path: $email_name <$email_email>\n";
$mailheaders.="From: $email_name <$email_email>\n";
$mailheaders.="MIME-Version: 1.0\n";
$mailheaders.="Content-type: text/html; charset=$lang_charset";
$mailheaders.="Reply-To: $email_name\n";
$mailheaders.="X-Mailer: $website\n";
$mailheaders.="X-Return-Path: $email_email\n";
$email_message="<html><body><br>$email_thank_messa ge<br><br>";
$v_html=str_replace("{slink}","<a href=".$website.$relative_string."verify=".$makepa ss.">",$email_verify_message);
$v_html=str_replace("{/slink}","</a>",$v_html);
$email_message.="<br>".$v_html ;
mail($email,"Registration Details",$email_message,$mailheaders);
include ($main_dir."inc/email_email_sent.php");
return;

}
elseif( $email_verify=="yes" && strlen($verify) > 0 )
{
$vrs=$conn->Execute("SELECT * FROM wiml_verify WHERE rand_str='$verify'");
$vrow=$vrs->GetArray();
if(is_array($vrow))
{
/* check for existence */
$sql = "SELECT * FROM wiml_maillist WHERE email_address = '".$vrow[0]['email_address']."' AND group_id =".$vrow[0]['group_id'];
$recordset=$conn->Execute($sql);

if( $recordset!=false && $recordset->RecordCount() > 0 ) {
$conn->Execute("DELETE FROM wiml_verify WHERE id=".$vrow[0]['id']);
include ($main_dir."inc/email_exist.php");
return;
}
else {
/* register email and display thanks */
$sql = "INSERT INTO wiml_maillist (email_name,email_address,email_ip,email_date,grou p_id)";
$sql .= "VALUES ('".$vrow[0]['email_name']."', '".$vrow[0]['email_address']."', '".$_SERVER['REMOTE_ADDR']."', '".time()."', ".$vrow[0]['group_id'].")";
$conn->Execute($sql);
$conn->Execute("DELETE FROM wiml_verify WHERE id=".$vrow[0]['id']);
if($email_thank=="yes")
{
$mailheaders="Return-path: $email_name <$email_email>\n";
$mailheaders.="From: $email_name <$email_email>\n";
$mailheaders.="Reply-To: $email_name\n";
$mailheaders.="X-Mailer: $website\n";
$mailheaders.="X-Return-Path: $email_email\n";
mail($vrow[0]['email_address'],$email_thank_title,$email_thank_message,$mailhead ers);
//mail($email,$email_thank_title,$email_thank_messag e,$mailheaders);
}
include ($main_dir."inc/email_thanks.php");
return;
}
}
}

elseif($subscribe=="false")
{
if(!$email_exists){
/* email does not exist*/
include ($main_dir."inc/email_not_exist.php");
return;
}
else {
/* does exist remove email */
$sql = "DELETE FROM wiml_maillist WHERE id = ".$ers[0]['id'];
$rs = $conn->Execute($sql);
include ($main_dir."inc/email_removed.php");
return;
}

}
}
?>



___________________________________________


Este archivo hace parte de todo el sistema de boletines electrónicos que tengo en mi sitio y que baje de maillist.

Gracias por tu colaboración


Carlos
  #5 (permalink)  
Antiguo 15/02/2005, 08:53
 
Fecha de Ingreso: diciembre-2004
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Cluster:

Intente lo que tu dices pero me sale un error y, no abre nada más.

Incluí más o menos esto
mail($to,$subject,$message,"From: [email protected]")

o será que debo cambiar:

function Mail( $from, $to, $subject, $message ){

por:

mail($to,$subject,$message,"From: [email protected]")



Ni idea!!

Carlos
  #6 (permalink)  
Antiguo 15/02/2005, 09:03
 
Fecha de Ingreso: diciembre-2004
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
mail($to,$subject,$message,"From: [email protected]")


Puse el codigo anterior y no funciono
  #7 (permalink)  
Antiguo 15/02/2005, 10:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si dices que obtienes un error . .debes ponerlo aquí o al menos explicar que sucede ..

En tu último código que pusistes tienes en $heders las cabeceras FROM correctamente puestas. ¿ que código completo estás realmente intentado usar?

Un saludo,

PD: por si acaso, esos [email ] ... [/ email] no corresponde para mail() (eso lo inserta el foro para describir que ahí va una dirección de e-mail ..)
  #8 (permalink)  
Antiguo 15/02/2005, 16:59
 
Fecha de Ingreso: diciembre-2004
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
Este es el error que me aparece:

Parse error: parse error, expecting `')'' in c:\domains\axxonev.com\wwwroot\whoiscart\templates \mailings.php on line 455

______________________________________________
Este es el codigo que puse:

function whoiscartMail( $from:"[email protected]", $to, $subject, $message ){


$headers = "De: AXXON Estudio Virtual <".$from.">\n";
$headers .= "Reply-To: <".$from.">\n";
$headers .= "X-Sender: <".$from.">\n";
$headers .= "X-Mailer: PHP4\n"; //mailer
$headers .= "X-Priority: 3\n"; //1 UrgentMessage, 3 Normal
$headers .= "Return-Path: <".$from.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "Bcc: [email protected]"."\n";

if( function_exists( "mail" ) )
mail( $to, $subject, $message, $headers );
}
________________________________________________


Y este es el codigo que estaba antes del el error:

function whoiscartMail( $from, $to, $subject, $message ){


$headers = "De: AXXON Estudio Virtual <".$from.">\n";
$headers .= "Reply-To: <".$from.">\n";
$headers .= "X-Sender: <".$from.">\n";
$headers .= "X-Mailer: PHP4\n"; //mailer
$headers .= "X-Priority: 3\n"; //1 UrgentMessage, 3 Normal
$headers .= "Return-Path: <".$from.">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "Bcc: [email protected]"."\n";

if( function_exists( "mail" ) )
mail( $to, $subject, $message, $headers );
}


__________________________________________________ ________


Alguna idea. Esta vez si entregue bien la información?

Gracias
  #9 (permalink)  
Antiguo 15/02/2005, 17:22
 
Fecha de Ingreso: diciembre-2004
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
los corchetes [/email] a los que hace mencion yo los corrijo entendiendo la observación.

Gracias.
  #10 (permalink)  
Antiguo 16/02/2005, 08:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En principio .. insito que esto no corresponde:
$headers = "De: AXXON Estudio Virtual <".$from.">\n";

a lo sumo sería:
$headers = "FROM: AXXON Estudio Virtual <".$from.">\n";

y la función (definición) sería algo tipo:
function whoiscartMail( $from, $to, $subject, $message ){

Un saludo,
  #11 (permalink)  
Antiguo 16/02/2005, 11:06
 
Fecha de Ingreso: diciembre-2004
Mensajes: 12
Antigüedad: 13 años
Puntos: 0
LIsto

Era tan sencillo como que no era "DE" sino "from".

Funciona excelente.


Mil graciaas. CLUSTER has sido muy amable.


Carlos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:56.