Nueva pregunta

Pregunta:

Fecha: 31-10-2016 12:12:32 (En Español)

¿Cómo envío un correo con imágenes, texto y una fuente predeterminada desde PHP?[Resuelta]

Mis estimados,

Solicito ayuda, ¿cómo envío un correo con imágenes, texto y una fuente predeterminada desde PHP?, algo parecido a como lo hace PHPCentral al enviarnos notificaciones a nuestro email.

Muchas gracias.
Etiquetas: Email - PHP - Pregunta - Sugerencia Votos: 0 - Respuestas: 7 - Vistas: 17 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 31-10-2016 14:50:14 Hola Kevin Mitnick

    Si tu consulta es como enviar un email, mira los siguientes links que pertenecen a temas tratados en la comunidad

    ¿Cómo enviar correos desde php?

    En caso de querer utilizar la función mail() en desarrollo, es decir desde tu pc. Fernando a dado un buen tip para ello "como configurar XAMPP para enviar correo con php."

    Doc oficial de PHP: Funciones de mail, mail()

    Si se trata del formateo del cuerpo del mensaje.

    Como has mencionado el mail que envia PHP Central y entre otros sitios.
    Si abres el email con el navegador por ejemplo el mail de gmail con el botón derecho, opcion "ver codigo fuente de la pagina"
    Observaremos que esta realizado con codigo HTML y CSS embebido. Maquetado con una tabla y <div>.
    El email que envia PHP Central no contiene imagen alguna, ahora bien, si deseas incrustar una imagen, esta imagen debe estar disponible en internet por ej en tu hosting para que pueda ser descargada al momento de abrir el email.

    DOC oficial de PHP

    Ejemplo #4 Envío de un correo HTML

    Es posible también enviar correos HTML con mail().


    <?php
    // Varios destinatarios
    $para  = 'aidan@example.com' . ', '; // atención a la coma
    $para .= 'wez@example.com';
    
    // título
    $título = 'Recordatorio de cumpleaños para Agosto';
    
    // mensaje
    $mensaje = '
    <html>
    <head>
      <title>Recordatorio de cumpleaños para Agosto</title>
    </head>
    <body>
      <p>¡Estos son los cumpleaños para Agosto!</p>
      <table>
        <tr>
          <th>Quien</th><th>Día</th><th>Mes</th><th>Año</th>
        </tr>
        <tr>
          <td>Joe</td><td>3</td><td>Agosto</td><td>1970</td>
        </tr>
        <tr>
          <td>Sally</td><td>17</td><td>Agosto</td><td>1973</td>
        </tr>
      </table>
    </body>
    </html>
    ';
    
    // Para enviar un correo HTML, debe establecerse la cabecera Content-type
    $cabeceras  = 'MIME-Version: 1.0' . "\r\n";
    $cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    
    // Cabeceras adicionales
    $cabeceras .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
    $cabeceras .= 'From: Recordatorio <cumples@example.com>' . "\r\n";
    $cabeceras .= 'Cc: birthdayarchive@example.com' . "\r\n";
    $cabeceras .= 'Bcc: birthdaycheck@example.com' . "\r\n";
    
    // Enviarlo
    mail($para, $título, $mensaje, $cabeceras);
    ?>
    

    Como verás es una tabla de HTML que da como resultante algo como:


    Si quiere colocar una imagen por ejemplo la siguiente

    Esta hosteada en un servidor con la siguiente ruta: https://k60.kn3.net/E/7/F/2/4/8/472.gif

    El codigo HTML seria

    // mensaje
    $mensaje = '
    <html>
    <head>
      <title>Recordatorio de cumpleaños para Agosto</title>
    </head>
    <body>
      <p>¡Estos son los cumpleaños para Agosto!</p>
      <table>
        <tr>
          <th>Quien</th><th>Día</th><th>Mes</th><th>Año</th>
        </tr>
        <tr>
          <td>Joe</td><td>3</td><td>Agosto</td><td>1970</td>
        </tr>
        <tr>
          <td>Sally</td><td>17</td><td>Agosto</td><td>1973</td>
        </tr>
      </table>
    <img src="https://k60.kn3.net/E/7/F/2/4/8/472.gif">
    </body>
    </html>
    ';


    Dando como resultado


    Hay algunas consideraciones a tener en cuenta con respecto a las imágenes, por ejemplo que cuando abran el email se hará una petición al servidor solicitando dicha imagen.

    Espero que te sirva como punto de partida mi respuesta.

    PD//Kevin Mitnick: espero que no lo tomes a mal lo siguiente, escribir la pregunta todo en MAYÚSCULAS y en una sola linea como si fuese un telegrama es un poco molesto a los ojos del lector ;)

    Saludos
      Votos: 3 - Link respuesta
     
  • Fecha: 02-11-2016 05:27:00 PD//Kevin Mitnick: espero que no lo tomes a mal lo siguiente, escribir la pregunta todo en MAYÚSCULAS y en una sola linea como si fuese un telegrama es un poco molesto a los ojos del lector ;) -----
    Jjajajaj es por la edad que tengo walter y el mal habito al escribir rápido, referente a tu respuesta es la clara y concisa mi estimado lo voy a probar. Gracias
      Votos: 1 - Link respuesta
     
  • Fecha: 02-11-2016 06:26:59 Meter un HTML en un string es una pésima practica, si no es que de las peores.

    Intenta obtener el HTML de un archivo HTML original para poder enviarlo :), desde un simple fopen()

    Saludos y gracias por el resto de la información.
      Votos: 4 - Link respuesta
     
  • Fecha: 02-11-2016 13:00:05 Kevin espero que logres arribar a la solución.
    Si lo deseas puedes publicar el código que has desarrollado para que te vallan sugiriendo mejoras, al mismo tiempo le puede ser útil a alguien más.
    Cuentanos tus progresos.

    Porfirio es una buena sugerencia la tuya. Sería de mucha utilidad y contribución para todos si expones algún ejemplo con código.

    Que tengan un buen día.
    Saludos.-
      Votos: 2 - Link respuesta
     
  • Fecha: 03-11-2016 09:57:48 Hola, saludos desde Ecuador, Yo utilizo la PHPMailer desde mi Hosting, y me va muy bien, ahora también le recomiendo que utilice la funcion de PHP file_get_content( la direccion html ), puede usar una plantilla html e insertar la imagen con las etiquetas de html5

    Aqui le dejo el link function file_get_function

    Dios le bendiga
      Votos: 3 - Link respuesta
     
  • Fecha: 13-10-2017 13:16:13 Hola!! como agrego imagen de perfil a la cabecera? se puede?
    $cabeceras .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
    $cabeceras .= 'From: Recordatorio <cumples@example.com>' . "\r\n";
    $cabeceras .= 'Cc: birthdayarchive@example.com' . "\r\n";
    $cabeceras .= 'Bcc: birthdaycheck@example.com' . "\r\n";
    
      Votos: 0 - Link respuesta
     
  • Fecha: 18-10-2017 16:29:12 Yo utilizo asi:
    $template = file_get_contents(dirname(__FILE__).'/inscripcion.tpl');
    code de plantilla:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
            <style type="text/css">
                .ExternalClass,.ExternalClass div,.ExternalClass font,.ExternalClass p,.ExternalClass span,.ExternalClass td,h1,img{line-height:100%}h1,h2{display:block;font-family:Helvetica;font-style:normal;font-weight:700}#outlook a{padding:0}.ExternalClass,.ReadMsgBody{width:100%}a,blockquote,body,li,p,table,td{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}table,td{mso-table-lspace:0;mso-table-rspace:0}img{-ms-interpolation-mode:bicubic;border:0;height:auto;outline:0;text-decoration:none}table{border-collapse:collapse!important}#bodyCell,#bodyTable,body{height:100%!important;margin:0;padding:0;width:100%!important}#bodyCell{padding:20px;}#templateContainer{width:800px;border:1px solid #ddd;background-color:#fff}#bodyTable,body{background-color:#FAFAFA}h1{color:#202020!important;font-size:26px;letter-spacing:normal;text-align:left;margin:0 0 10px}h2{color:#404040!important;font-size:20px;line-height:100%;letter-spacing:normal;text-align:left;margin:0 0 10px}h3,h4{display:block;font-style:italic;font-weight:400;letter-spacing:normal;text-align:left;margin:0 0 10px;font-family:Helvetica;line-height:100%}h3{color:#606060!important;font-size:16px}h4{color:grey!important;font-size:14px}.headerContent{background-color:#f8f8f8;border-bottom:1px solid #ddd;color:#505050;font-family:Helvetica;font-size:20px;font-weight:700;line-height:100%;text-align:left;vertical-align:middle;padding:0}.bodyContent,.footerContent{font-family:Helvetica;line-height:150%;text-align:left;}.footerContent{text-align:center}.bodyContent pre{padding:15px;background-color:#444;color:#f8f8f8;border:0}.bodyContent pre code{white-space:pre;word-break:normal;word-wrap:normal}.bodyContent table{margin:10px 0;background-color:#fff;border:1px solid #ddd}.bodyContent table th{padding:4px 10px;background-color:#f8f8f8;border:1px solid #ddd;font-weight:700;text-align:center}.bodyContent table td{padding:3px 8px;border:1px solid #ddd}.table-responsive{border:0}.bodyContent a{word-break:break-all}.headerContent a .yshortcuts,.headerContent a:link,.headerContent a:visited{color:#1f5d8c;font-weight:400;text-decoration:underline}#headerImage{height:auto;max-width:600px;padding:20px}#templateBody{background-color:#fff}.bodyContent{color:#505050;font-size:14px;padding:20px}.bodyContent a .yshortcuts,.bodyContent a:link,.bodyContent a:visited{color:#1f5d8c;font-weight:400;text-decoration:underline}.bodyContent a:hover{text-decoration:none}.bodyContent .datos{height: 20px}.bodyContent img{display:inline;height:auto;max-width:360px}.footerContent{color:grey;font-size:12px;padding:20px}.footerContent a .yshortcuts,.footerContent a span,.footerContent a:link,.footerContent a:visited{color:#606060;font-weight:400;text-decoration:underline}@media only screen and (max-width:640px){h1,h2,h3,h4{line-height:100%!important}#templateContainer{max-width:800px!important;width:100%!important}#templateContainer,body{width:100%!important}a,blockquote,body,li,p,table,td{-webkit-text-size-adjust:none!important}body{min-width:100%!important}#bodyCell{padding:10px!important}h1{font-size:24px!important}h2{font-size:20px!important}h3{font-size:18px!important}h4{font-size:16px!important}#templatePreheader{display:none!important}.headerContent{font-size:20px!important;line-height:125%!important}.footerContent{font-size:14px!important;line-height:115%!important}.footerContent a{display:block!important}.hide-mobile{display:none;}}
            </style>
            <base href="https://solucionessysmat3d.com.ve/">
        </head>
        <body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0">
            <center>
                <table align="center" border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodyTable">
                    <tr>
                        <td align="center" valign="top" id="bodyCell">
                            <table border="0" cellpadding="0" cellspacing="0" id="templateContainer">
                                <tr>
                                    <td align="center" valign="top">
                                        <table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateHeader">
                                            <tr>
                                                <td valign="top" class="headerContent">
                                                    <a href="https://solucionessysmat3d.com.ve/">
                                                        <img src="images/logo_footer.png" style="max-width:600px;padding:20px" id="headerImage" alt="Soluciones Sysmat 3D" />
                                                </td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="center" valign="top">
                                        <table border="0" cellpadding="0" cellspacing="0" width="100%" id="templateBody">
                                            <tr>
                                                <td valign="top" class="bodyContent" id="contenido">
                                                <!-- #{Mensaje} -->
                                                    <table border="0" cellpadding="0" cellspacing="0" width="100%">
                                                        <tr>
                                                            <td colspan="2" valign="top">
                                                            <h2><!-- #{Curso} --></h2></td>
                                                        </tr>
                                                        <tr>
                                                            <td align="center" width="50%">
                                                            <a href="curso-cad/<!-- #{urlsCurso} -->"><!-- #{url_imagen_curso} --></a></td>
                                                            <td align="center" width="50%" valign="top">
                                                            <table border="0" class="datos"  width="100%" style="border-radius: 5px;-moz-border-radius: 5px;webkit-border-radius: 5px;border: 0px solid #000000;">
                                                            <tr>
                                                                <td align="left">Nro de Referencia:</td>
                                                                <td align="right"><!-- #{Ref} --></td>
                                                            </tr>
                                                            <tr>
                                                                <td align="left">Inicio:</td>
                                                                <td align="right"><!-- #{Inicio} --></td>
                                                            </tr>
                                                            <tr>
                                                                <td align="left">Duración:</td>
                                                                <td align="right"><!-- #{Duracion} --> Horas</td>
                                                            </tr>
                                                            <tr>
                                                                <td align="left">Nivel:</td>
                                                                <td align="right"><!-- #{Nivel} --></td>
                                                            </tr>
                                                            <tr>
                                                                <td align="left">Costo:</td>
                                                                <td align="right">Bs. <!-- #{Costo} --></td>
                                                            </tr>
                                                            <tr>
                                                                <td align="left">Metodo de Pago:</td>
                                                                <td align="right"><!-- #{Boton} --></td>
                                                            </tr>
                                                        </table>
                                                    </td>
                                                        </tr>
                                                        <tr>
                                                            <td colspan="2">
                                                            <!-- #{Descripcion} -->
                                                            </td>
                                                        </tr>
                                                        <!--<tr>
                                                            <td colspan="2">-->
                                                            <!-- #{CondicionPago} -->
                                                            <!--</td>
                                                        </tr>-->
                                                    </table>
                                                </td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="center" valign="top">
                                        <table border="0" cellpadding="0" cellspacing="0" width="100%" height="132px" id="templateFooter" background="images/fondo.jpg">
                                            <tr>
                                                <td class="footerContent" align="center">
                                                     <a href="https://solucionessysmat3d.com.ve/">visitanos</a>
                                                    <span class="hide-mobile"> | </span>
                                                    <a href="https://solucionessysmat3d.com.ve/login-registro/">accceso para inscribirte</a>
                                                    <span class="hide-mobile"> | </span>
                                                    <a href="https://solucionessysmat3d.com.ve/informar-pago/">informar pago</a> <br />
                                                    Copyright © Soluciones Sysmat 3D, All rights reserved.
                                                    <p>Diseño y Hosting por <a href="https://pemoweb.com.ve">PemoWeb</a> - design &amp; hosting web</p>
                                                </td>
                                            </tr>
                                        </table>
                                    </td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                </table>
            </center>
        </body>
    </html>                                                      

    luego:
    //========= reemplazo de variable en la plantilla ============//
    
        $template = str_replace(["<!-- #{Asunto} -->"],[$asunto],$template); // asunto
        $template = str_replace(["<!-- #{Mensaje} -->"],[$mensaje],$template); // mensaje
        $template = str_replace(["<!-- #{Curso} -->"],[$nombre_curso],$template); // nombre del curso
        $template = str_replace(["<!-- #{urlsCurso} -->"],[$urls_nombre_curso],$template); // url amigable
        $template = str_replace(["<!-- #{Descripcion} -->"],[$descripcion_curso],$template); // descripcion del curso
        $template = str_replace(["<!-- #{url_imagen_curso} -->"],[$url_imagen_curso],$template); // imagen del curso
        $template = str_replace(["<!-- #{idCurso} -->"],[$id_curso],$template); // id del curso
        $template = str_replace(["<!-- #{Inicio} -->"],[$fecha_publicacion_format],$template); // fecha del curso
        $template = str_replace(["<!-- #{Duracion} -->"],[$duracion_cupo],$template); // durasción del curso
        $template = str_replace(["<!-- #{Nivel} -->"],[$nivel_curso],$template); // nivel del curso
        $template = str_replace(["<!-- #{Costo} -->"],[$costo_curso_format],$template); // costo del curso
        $template = str_replace(["<!-- #{Ref} -->"],[$numeroRef],$template); // nro de ref de inscripción
    //if ($metodoPago == "transferencia") {
        $template = str_replace(["<!-- #{CondicionPago} -->"],[$CondicionPago],$template); // condiciones de pago
    //}
    
    //------ funcion para el envio de correo ----------------//
    $correo = $correoEstudiante;
    $nombre = $nombreCompletoEstudiante;
    enviar_correo($correo, $nombre, $asunto, $template, $correoSitio, $nombreSitio);

    y quedan al pelo....
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com