mailTo(), envía correos de forma simple con PHP
La función que dejo hoy es un imprescindible en los proyectos de hoy en día. Se trata de una función para enviar mail a partir de las variables introducidas. La función directamente verifica si los mail introducidos como origen y destino están bien escritos y a demás verifica si es posible que existan (verifica si el hosting del mail si existe).
Las variables de la función son por orden:
Asunto: El asunto del mail.
Contenido: El contenido del mail.
To_mail: Mail de destinatario.
From_mail: Mail del usuario que lo envía.
To_name: Nombre del usuario que recibirá el mail.
From_name: Nombre del usuario que envía el mail.
Type: Tipo de contenido del mail. Hay 3 opciones para esta variable. 'html' como predeterminado para contenido HTML, 'both' como contenido comodín o 'text' como texto sin HTML (solo texto plano).
Reply: Indica 'true' o 'false' para determinar si se quiere mostrar el mail de origen al destinatario. Si no se quiere mostrar se mostrará "noreply".
-
function mailTo($asunto, $contenido, $to_mail, $from_mail='', $to_name='', $from_name='', $type='html', $reply = false) {
-
# test mail origen
-
$error.='el correo de origen no existe'."<br>\n";
-
}
-
} else {
-
$error.='el correo de origen no es correcto'."<br>\n";
-
}
-
# test mail destino
-
$error.='el correo de destino no existe'."<br>\n";
-
}
-
} else {
-
$error.='el correo de destino no es correcto'."<br>\n";
-
}
-
if($error) return $error;
-
# composicion cabeceras
-
if($from_mail==''){
-
} else {
-
if($from_name!=''){
-
$from = $reply ? $from_name.'<'.$from_mail.'>' : $from_name.'<'.'noreply@'.$parse_mail[1].'>';
-
} else {
-
$from = $reply ? $from_mail : 'noreply@'.$parse_mail[1];
-
}
-
}
-
$to = $to_name=='' ? $to_mail : $to_name.'<'.$to_mail.'>';
-
$return_path = $reply ? '<'.$from_mail.'>' : '<'.'noreply@'.$parse_mail[1].'>';
-
$boundary = md5($from_mail.$to_mail.$asunto.$contenido.$type.$reply); //id unica para este contenido de mail
-
-
$headers = "From: $from\nReply-To: $from\n";
-
$headers .= "Mime-Version: 1.0\n";
-
$headers .= "Content-Type: multipart/alternative; boundary=\"{$boundary}\"\n";
-
$headers .= "Return-Path: $return_path\n";
-
-
# composicion de mail
-
$message = "\n--{$boundary}\n";
-
switch ($type){
-
case 'html' :
-
$message .= "Content-Type: text/html; charset=ISO-8859-1\nContent-Transfer-Encoding: quoted-printable\n\n$contenido";
-
$message .= "\n--{$boundary}--\n\n";
-
break;
-
case 'text' :
-
$message .= "Content-Type: text/plain; charset=ISO-8859-1\nContent-Transfer-Encoding: quoted-printable\n\n$contenido";
-
$message .= "\n--{$boundary}--\n\n";
-
break;
-
case 'both' :
-
$message .= "Content-Type: text/plain; charset=ISO-8859-1\nContent-Transfer-Encoding: quoted-printable\n\n$contenido";
-
$message .= "\n--{$boundary}--\n\n";
-
break;
-
}
-
# envio
-
}
Al usar la función puede dar como resultado un binario indicando si se ha enviado o no el mail o un string de texto indicando si hay algún error con las direcciones.
Ejemplo basico:
Ejemplo completo mail de origen oculto:
lo probaré aer si funciona ;D