Para empezar, creo que te extraña que nadie haya respondido, la razón es porque una de las reglas de aca es usar el buscador antes de preguntar,
aqui esta un ligero tutorial que explica como hacerlo sin la función mail
http://www.cristalab.com/tutoriales/97/envio_de_correo_electronico_desde_php_sin_la_funcion_maily a continuación un codigo de una función que optimiza la función mail
esta la elabore yo
Tiene las opciones Basicas,
Archivos adjuntos, Copia Carbón, Copia Carbón Oculta, Reply-To, Formatos HTML y TXT,
si la estudias no tendras que volver a copiar y pegar.
espero que te sea utíl
Código :
function sendmail($asunto,$mensaje,$destinatario,$destinario,$cc='',$cco='',$reply='',$formato='',$attach='')
{
if(!$formato)$formato='html';
if(!$attach)$attach=Array();
while(list($campo,$valor)=each($attach))
{
if($attach[$campo]['size']!=0)
{
if(!$attach[$campo]['data'])$attach[$campo]['data']=fread(fopen($attach[$campo]['tmp_name'], "r"),$attach[$campo]['size']);
$docsnames.= "X-attachments: ".$attach[$campo]['name']."\n";
$adjuntados .= "n--Message-Boundary\n";
$adjuntados .= "Content-type: ".$attach[$campo]['type']."; name=\"".$attach[$campo]['name']."\"\n";
$adjuntados .= "Content-Transfer-Encoding: BASE64\n";
$adjuntados .= "Content-disposition: attachment; filename=\"".$attach[$campo]['name']."\"\n\n";
$adjuntados .= chunk_split(base64_encode($attach[$campo]['data']))."\n";
}
}
$cabeceras = "From: ".$destinatario."\n";
if($cc)$cabeceras .= "CC: ".$cc."\n";
if($cco)$cabeceras .= "BCC: ".$cco."\n";
if($reply)$cabeceras .= "Reply-To: ".$reply."\n";
$cabeceras.="X-Priority: 1\n";
$cabeceras.="X-MSMail-Priority: High\n";
$cabeceras.="X-Mailer: Neftali Yaguas -\"Sendmail Attach files 1.2\"- [email protected]\n";
$cabeceras.="Return-Path: [email protected]\n";
$cabeceras .= "MIME-version: 1.0\n";
$cabeceras .= "Content-type: multipart/mixed; boundary=\"Message-Boundary\"\n";
$cabeceras .= "Content-transfer-encoding: 7BIT\n".$docsnames;
$cabezerasmsg = "--Message-Boundary\n";
$cabezerasmsg .= "Content-type: text/".$formato."; charset=US-ASCII\n";
$cabezerasmsg .= "Content-transfer-encoding: 7BIT\n";
$cabezerasmsg .= "Content-description:Cuerpo de Mensaje\n\n";
$cuerpo = $cabezerasmsg.$mensaje."\n\n".$adjuntados."--Message-Boundary--\n";
return mail($destinario,$asunto,$cuerpo,$cabeceras);
}
?>
La forma de usarlo es la siguiente:
despues de pegar el codigo anterior al principio de tu documento, (recomiendo insertarlo desde un include)
cuando vallas a enviar email usas el siguiente codigo
Código :
<?
sendmail("Asunto del mensaje",$mensaje,'"Tu Nombre"<[email protected]>','[email protected]')
?>
donde esta la variable $mensaje qe esta en negrita, esa es la variable que trae el mensaje completo, este script formatea en html
puedes editarlo de la siguiente manera:
para la variable adjunto, haces el siguiente proceso:
Código :
$archivo1['name']='imagen.jpg'; //nombre del archivo
$archivo1['tmp_name']='../imagen.jpg'; //ruta del archivo
$archivo1['size']='1500'; // peso del archivo. (por defecto es el peso calculado de tmp_name
$archivo1['type']='Tipo mime del archivo'; // ejemplo: image/jpeg, text/html
$archivo1['data']='contenido del archivo'; // este solo es necesario si el archivo es creado desde codigo, pero si se define este no usara el valor de tmp_name.
Código :
$adjunto['Archivo1']=$archivo1;
$adjunto['Archivo2']=$archivo2;
$adjunto['...']=...; // este es un nombre cualquiera.
Código :
sendmail("Asunto del mensaje",$mensaje,'"Tu Nombre"<[email protected]>','[email protected]',$cc,$cco,$replyto,$formato,$adjunto)
en caso de que los archivos adjuntos deban venir de un formulario solo hay que hacer esto:
Código :
$adjunto=$_FILES;
Bueno espero que esto te sirva o el otro, o envia los mails desde Gmail, jajaja
o usa Sockets, pero por favor nunca dejes de usar el buscador antes de preguntar.