Envío de correos electrónicos vía smtp con autorización php. Envío de correo vía SMTP en PHP. Envío de correo php a través de la configuración del script SMTP

Correo PHP

Esta función se implementa por defecto como envío de correo electrónico. Esta funcionalidad no requiere un servidor de terceros para reenviar el correo electrónico. Para verificar la exactitud de esta función, simplemente cree un archivo test.php en la carpeta con el sitio y coloque el siguiente código allí:

donde en cambio "CORREO ELECTRÓNICORECIPIENTE" Ingrese el correo electrónico al que se debe enviar la carta.

Lugar Este archivo en la raíz de su sitio.

Luego, ingrese www.SuDominio/test.php en la barra de direcciones. Si se recibe una carta en el correo electrónico especificado, entonces su hosting funciona correctamente con la función de enviar cartas " Correo PHP". Es posible que la carta haya terminado en spam, por lo que también es necesario comprobarla.

Si la carta llegó con una codificación incomprensible, cambie la línea: "Comprobando el envío de correo" en "Comprobando el envío de correo", "Tipo de contenido:text/html;charset=utf-8".

Y repite enviando la carta a través de la barra de direcciones de tu navegador.

Si tras las manipulaciones anteriores la carta de prueba no llega al destinatario final, deberás contactar con el soporte técnico de tu hosting.

Entre las deficiencias este método Cabe señalar que el trabajo no es permanente. este método. Puede haber interrupciones en el envío de correos electrónicos por parte del hosting.

La principal desventaja de este método es que todas las cartas enviadas a los correos electrónicos de los clientes no serán reconocidas por los servicios de correo (gmail, mail.ru, yandex.ru), ya que fueron enviadas directamente desde su sitio web.

El servicio de correo Gmail muestra estas cartas con un signo de interrogación y la firma: "El sistema Gmail no pudo confirmar que esta carta fue enviada desde el dominio TuDominio. Esto puede ser spam".

Para evitar esta situación .

SMTP (Protocolo simple de transferencia de correo)

SMTP: protocolo de transferencia de correo. En total, para configurar la transmisión de correo utilizando este protocolo, necesita el propio servidor SMTP. La opción más común para utilizar el correo corporativo (dominio) yandex.ru como servidor SMTP es https://pdd.yandex.ru/.

Primero que nada es necesario cuenta (correo) yandex, en base a qué correos electrónicos se crearán para su dominio: “pedido@SuDominio” “info@SuDominio”... La cuenta principal no será visible en ninguna parte y se usará solo para crear correos electrónicos de dominio basados ​​en ella en el futuro.

Después de iniciar sesión en su cuenta personal El correo del dominio Yandex se crea mediante el enlace https://pdd.yandex.ru/. Este es el correo electrónico del dominio que los usuarios verán en el campo "Remitente".

El campo "Remitente" es obligatorio al enviar correos electrónicos a través de SMTP. Usando SMTP para enviar cartas, una combinación de " Dominio" - "Correo electrónico", por lo que las cartas son reconocidas por los servicios de correo.


Entre las desventajas de este método, cabe destacar la imposibilidad de "cargar" un retrato de correo de dominio, ya que los propios servicios de correo aún no proporcionan esta funcionalidad.

2019-08-05

¡Hola querido visitante!

Perdóneme por el retraso en actualizar el blog. Pero hay una explicación completamente comprensible para esto. Después de todo, era verano, la casa de campo, los invitados, el bosque, el agua y mucho más, lo que no me permitió abordar los problemas de la creación de un sitio web. Pero ahora me he liberado un poco, los invitados se han ido y creo que ahora definitivamente podré prestarle la debida atención.

Entonces, después de que en el último artículo conectamos el correo de nuestro dominio a uno de los servicios de correo, ahora veamos cómo enviar correos electrónicos desde el sitio. Además, de tal forma que nuestras cartas no acaben en SPAM, sino que sean entregadas de forma fiable, con un alto grado de probabilidad, a nuestros destinatarios.

En general, existe una función mail() incorporada para enviar cartas en PHP. Pero cabe señalar que a pesar de la sencillez de este método (en este caso, para enviar cartas basta con especificar una sola línea de código con determinados parámetros), el uso de esta opción tiene un inconveniente importante asociado al problema del SPAM. .

El hecho es que los filtros anti-SPAM de los servidores de correo del lado del destinatario no favorecen realmente las cartas enviadas a través de la función mail(). Y en la mayoría de los casos, estos mensajes se filtran o incluso se eliminan antes de llegar al destinatario.

Y para eliminar al máximo estos casos se suele recurrir a otra opción, en la que las cartas se envían como si lo hiciera un servicio de correo de terceros.

Este método se llama enviar correo vía SMTP con autorización. Lo que veremos hoy usando el ejemplo de enviar un formulario. comentario. Además, para ello utilizaremos la conocida y popular biblioteca PHPMailer, que le permite organizar de forma muy sencilla el envío de cartas a través de SMTP.

  • Cómo enviaremos cartas de comentarios
  • Crear un formulario de comentarios
  • Instalación de la biblioteca PHPMailer
  • Creamos un script para enviar correo vía SMTP
  • Comprobando el envío de correo electrónico
  • Archivos fuente del sitio

Cómo enviaremos cartas de comentarios

Antes de que empieces trabajo practico Después de enviar cartas de comentarios, primero decidiremos cómo lo haremos.

El formulario de comentarios está diseñado para permitir que el usuario se comunique con el administrador del sitio para transmitir su mensaje. Normalmente, este formulario consta de varios campos y un botón "Enviar".

En principio, para enviar un correo electrónico basta con utilizar sólo unos pocos campos que proporcionen información suficiente sobre el usuario y el contenido del mensaje, como por ejemplo:

  • "Nombre": para ingresar el nombre del remitente del mensaje;
  • "Correo electrónico" - para la dirección Correo electrónico remitente;
  • "Asunto del mensaje";
  • "Mensaje de texto".

Aunque puedes agregar otros. Por ejemplo, un número de teléfono, si es realmente necesario.

En nuestro caso, dichas cartas se enviarán a la dirección del administrador del sitio desde un buzón real con autorización en el servicio de correo al que está conectado nuestro dominio.

Dado que en el artículo anterior nos centramos en comprobar la conexión del correo del dominio al servicio Yandex.Mail, enviaremos correo para esta opción. Aunque esto no es importante. A continuación verá aquellas opciones que, cuando se modifiquen, le permitirán enviar correo electrónico a través de servidor de correo Mail.ru.

Como buzón real desde el que se enviarán las cartas, utilizaremos la cuenta de un usuario de correo de dominio recién creado, digamos con la dirección [correo electrónico protegido]. Y enviaremos estas cartas a Buzón administrador [correo electrónico protegido], que creamos previamente en el artículo anterior.

Por lo tanto, el remitente de la carta del formulario de comentarios será el buzón. [correo electrónico protegido]., y el destinatario - [correo electrónico protegido]. En este caso, toda la información sobre el usuario que envió el mensaje con su contenido se transmitirá en el cuerpo de la carta enviada.

Crear un formulario de comentarios

Una vez que hayamos decidido el procedimiento para enviar cartas, ahora crearemos un formulario de comentarios con el que lo haremos.

A continuación se muestra el código HTML para este formulario, que colocaremos en la página "Contactos" (archivo kontakty.php en el directorio de artículos).

    "artículo" >

    Contactos

    Comentario

    "contacto" acción = "#" método = "correo" >

    Formulario de comentarios

    Para todas las preguntas, solicitudes y propuestas comerciales, puede contactarnos utilizando el formulario de comentarios a continuación.

    "bloque de contacto" >

    "entrada de contacto" >

    "texto" identificación = "nombre de contacto" nombre = "nombre de contacto" título = "El nombre debe estar en ruso y contener al menos 3 caracteres" patrón = "{3,}" requerido >

  1. "contacto vacío" >

    "entrada de contacto" >

    "correo electrónico" identificación = "Email de contacto" nombre = "Email de contacto" requerido >

  2. "asunto-contacto" >

  3. "contacto-comentario" >

  4. "boton-contacto" >

    "entregar" nombre = "boton-contacto" valor = "Enviar" >

Fig.1 Código HTML del formulario de comentarios

Puede ver cómo se ve finalmente el formulario de comentarios que se muestra aquí en la siguiente captura de pantalla.

De este modo Formulario requerido creado. Y ahora puede pasar a las cuestiones del procesamiento y envío de datos en forma de mensaje de correo electrónico.

Instalación de la biblioteca PHPMailer

Como se señaló anteriormente, para enviar correo usaremos la biblioteca PHPMailer, lo que simplificará enormemente el envío de correo electrónico a través de protocolo SMTP con autorización en un servicio de correo de terceros.

Para instalarlo necesitas descargar archivos necesarios. Esto se puede hacer desde el servicio web GitHub usando Composer (un administrador de dependencias de paquetes para PHP). O simplemente descargue los archivos necesarios de la forma habitual.

captura de pantalla 73

A continuación se muestra la página del servicio web GitHub, donde está marcado el enlace para la descarga regular de la biblioteca PHPMailer.

Además, ultima versión 6.0.7, que se guardó al momento de escribir este artículo, se puede descargar desde los materiales adjuntos.

En cualquier caso, el archivo resultante debe descomprimirse, después de lo cual la carpeta PHPMailer-master extraída con todo su contenido debe colocarse en la raíz del sitio. Al mismo tiempo, para simplificar, puede cambiarle el nombre a PHPMailer. A continuación se muestra el contenido de la carpeta PHPMailer ubicada en el directorio raíz del sitio.

Así instalamos la biblioteca PHPMailer. Tras lo cual ya podremos empezar a crear un script con el que enviaremos mensajes de correo electrónico desde nuestra web.

Creamos un script para enviar correo vía SMTP

Para redactar el script, basta con utilizar las recomendaciones de uso de PHPMailer que figuran en la página de GitHub, que utilizamos anteriormente para descargar la biblioteca.

En particular, indican que al comienzo del script es necesario importar las clases PHPMailer al espacio de nombres global. Y se proporcionan líneas específicas del código correspondiente. También hay ejemplos del uso de las propiedades y métodos de PHPMailer, incluida la opción de enviar correo a través de SMTP.

Pero si esto no es suficiente, también puede utilizar la documentación, que contiene una descripción de todas las propiedades y métodos de esta biblioteca.

captura de pantalla 74

A continuación se muestra el código de secuencia de comandos para enviar correo desde el formulario de comentarios a través de SMTP con autorización. Donde todas las líneas relacionadas con PHPMailer se dan con explicación y resaltadas con un fondo claro.

El resto de la parte, incluidos los fragmentos relacionados con la recepción y procesamiento de datos del formulario, que antes teníamos que utilizar en otros procesadores, se indica con un fondo oscuro. Se discutieron con cierto detalle anteriormente en un artículo dedicado específicamente a las cuestiones de obtener y verificar datos de un formulario en PHP. Donde también hablamos de la función de usuario universal para validar y procesar datos de formularios. símbolo_check().

Colocaremos este script en el mismo archivo kontakty.php en el que creamos previamente el formulario de comentarios.

    //----Script para enviar correo vía SMTP usando PHPMailer----

    //Importa clases PHPMailer al espacio de nombres global. Deben estar en la parte superior del script, no dentro de la función.

    usar PHPMailer\PHPMailer\PHPMailer ;

    usar PHPMailer\PHPMailer\Exception ;

    si (!vacío($_POST["botón-contacto" ])) (

    $nombre = $_POST["nombre-contacto" ];

    $nombre = check_symbol ($nombre, "Nombre", "1", "/^+\z/iu");

    $correo electrónico = $_POST["contacto-correo electrónico" ];

    $correo electrónico = símbolo_de verificación ($correo electrónico, "Correo electrónico", "1", "/^+@(+\.)+(2,6)\z/i");

    $asunto = $_POST["contacto-asunto" ];

    $asunto = check_symbol ($asunto, "Asunto del mensaje", "1", "0");

    $comentario = $_POST["contacto-comentario" ];

    $comentario = check_symbol ($comentario, "Mensaje de texto", "1" , "0" );

    si (!vacío($GLOBALS["alerta" ])) (

    $alerta = "Los datos del formulario no fueron enviados. Se encontraron los siguientes errores:\n".$alerta;

    incluir"alerta.php" ;

    demás {

    //Conectando la biblioteca

    requerir"PHPMailer/src/PHPMailer.php";

    requerir"PHPMailer/src/Exception.php";

    requerir"PHPMailer/src/SMTP.php";

    $correo = nuevo PHPMailer(); //Inicialización de clase

    $de = " [correo electrónico protegido]" ; //Dirección de correo electrónico desde donde se envía la carta

    $a = " [correo electrónico protegido]" ; //Dirección del destinatario

    $correo -> esSMTP(); //Usar protocolo SMTP

    $correo -> Anfitrión = "smtp.yandex.ru" ; //Dirección del servidor de correo

    $correo -> SMTPAuth = verdadero ; //Habilitar el modo de autorización

    $correo -> Nombre de usuario = " [correo electrónico protegido]" ; //Iniciar sesión desde un dominio de correo electrónico conectado a un servicio de correo electrónico de terceros (en este caso, Yandex.Mail)

    $correo -> Contraseña = "27MrDon89" ; //Contraseña para el correo del dominio

    $correo -> SMTPSecure = "ssl"; //Protocolo de cifrado

    $correo -> Puerto = "465" ; //puerto del servidor SMTP

    $correo -> CharSet = "UTF-8"; //Codificación

    $correo -> setFrom ($de, "Administrador" ); //Dirección y nombre del remitente

    $correo -> agregarDirección ($a, "Administrador"); //Dirección y nombre del destinatario

    $correo -> esHTML ( verdadero ); //Establecer formato de correo electrónico en HTML

    $correo -> Asunto = "Formulario de comentarios enviado"; //Asunto del correo electrónico (encabezado)

    $correo -> Cuerpo = "

    Nombre del remitente: $nombre

    Dirección del remitente: $correo electrónico

    Asunto del mensaje: $asunto

    Contenido del mensaje: $comentario



    " ; //Contenido del mensaje

    $correo -> AltCuerpo = "Texto de letra alternativo"; //Correo electrónico alternativo si el cliente de correo electrónico no soporta el formato HTML

    $correo -> SMTPDebug = 0 ; //Habilitar la depuración SMTP: 0 - desactivado (para uso normal), 1 = mensajes del cliente, 2 - mensajes del cliente y del servidor

    si($correo -> enviar()) (

    $alerta = "Mensaje enviado"; //Enviar un mensaje en el cuadro de diálogo del navegador sobre el envío exitoso de la carta

    demás {

    $alerta = "Error, no se puede enviar el correo electrónico: ".$correo -> Información de error; //Enviar un mensaje de error

    incluir"alerta.php" ;

Fig.5 Script para enviar correo electrónico vía SMTP con autorización

Como puede ver, todas las líneas directamente relacionadas con el envío de un mensaje de correo electrónico, en las que se especifican los métodos y propiedades necesarios, van acompañadas de comentarios. Por lo tanto, no tiene sentido repetirnos, sino que podemos detenernos sólo en algunos de ellos, que ciertamente requieren explicaciones adicionales, a saber:

1. Debido a que la carta se envía desde un servicio de correo de terceros, aquí se aplican la configuración correspondiente al servidor SMTP específico. En este caso, para el caso de uso del servidor Yandex.Mail, se aplican los siguientes valores de propiedad:

  • Propiedad Anfitrión(pos.28) - Dirección del servidor de correo con el valor smtp.yandex.ru;
  • Propiedad SMTPSeguro
  • Propiedad Puerto

Estos valores de propiedad se tomaron de la página Yandex.Help que se muestra en la siguiente captura de pantalla.

Pero esa información también se puede obtener de otros recursos. Para hacer esto, simplemente ingrese la consulta correspondiente en un motor de búsqueda, por ejemplo: "servidor smtp Yandex". ¿Dónde puede encontrar una gran cantidad de referencias sobre este tema?

De manera similar, los valores de configuración se pueden obtener de otros servidores SMTP. A continuación se muestra una captura de pantalla de la página de ayuda de Mail.ru, que muestra la configuración del servidor SMTP del servicio de correo Mail.ru.

Y así, en el caso de utilizar Mail.ru como servidor SMTP de terceros, se deben aplicar los siguientes valores de las propiedades de la clase PHPMailer:

  • Propiedad Anfitrión(pos.28) - Dirección del servidor de correo (smtp.mail.ru);
  • Propiedad SMTPSeguro(pos.32) - Protocolo de cifrado (ssl);
  • Propiedad Puerto(pos. 33) - Puerto del servidor SMTP (465).

Se debería aplicar un enfoque similar a otros servicios de correo electrónico.

2. En propiedad Nombre de usuario(pos. 30) es necesario indicar la dirección completa del buzón del dominio. En este caso, " [correo electrónico protegido]".

Sin embargo, si utiliza una cuenta que no sea una cuenta de correo de dominio para enviar cartas, sino una dirección relacionada directamente con el servicio de correo, por ejemplo " [correo electrónico protegido]", entonces el inicio de sesión debe ser sólo la parte de la dirección hasta el signo "@". En este caso, el inicio de sesión tendría el valor "comentarios".

3. PHPMailer proporciona una propiedad Depuración SMTP(pos. 50), que le permite mostrar diferentes niveles de errores en la pantalla del navegador. Esta característica simplifica enormemente la búsqueda de problemas al depurar un script.

Normalmente, en modo normal, con el valor establecido en 0, la salida de información de error detallada está deshabilitada. Pero si surgen problemas al enviar correo o durante la depuración, es posible utilizar otros valores para mostrar información más significativa sobre el error.

Para ver cómo se ve esto en la práctica, introduzcamos temporalmente algún error en la configuración. Por ejemplo, en la contraseña de correo del dominio (propiedad Contraseña, pos.31). Y también para mostrar información detallada sobre el error, configurado temporalmente en la propiedad Depuración SMTP(pos.50) valor 1. Luego, cuando todo esté depurado y verificado, desactivaremos el modo de depuración SMTP, reemplazando 1 por 0.

En la parte final del script, después de especificar todas las propiedades y métodos necesarios, se utiliza el método para enviar la carta. enviar()) (pos. 51). Y si se envía la carta, y el método. enviar() para objeto $correo devuelve verdadero, luego en el cuadro de diálogo del navegador a través de la variable $ alerta Se mostrará un mensaje sobre el envío exitoso del correo (pos. 52).

Si por alguna razón no se pudo enviar el correo y, en consecuencia, el método no pudo devolver verdadero, este estado irá acompañado del correspondiente mensaje de error (pos. 55).

Comprobando el envío de correo electrónico

Después de haber creado un script para enviar correo, naturalmente, debemos observar el resultado de nuestra "creatividad". ¿Hemos tenido todo en cuenta aquí y no hemos cometido ningún error?

Para hacer esto, intentemos, según lo previsto, enviar un mensaje del usuario al administrador del sitio desde el formulario de comentarios. A continuación se muestra una captura de pantalla del formulario de comentarios con los campos completados antes de enviarlo.

Y aquí está el resultado de enviar el formulario.

Donde del mensaje en el cuadro de diálogo del navegador se desprende que la carta no se puede enviar por un problema con la conexión SMTP.

Pero, desde ahora la propiedad Depuración SMTP(pos. 50) se le asigna el valor 1, luego podemos ver información detallada sobre el error ocurrido y averiguar el motivo de su aparición.

La siguiente captura de pantalla muestra que al intentar conectarse, se detectó un error de autenticación, es decir, el uso de un nombre de usuario o contraseña incorrectos.

Después de eliminar la discrepancia de contraseña (anteriormente se utilizó una contraseña incorrecta para poder verificar la salida de información adicional sobre el error), intentaremos enviar el correo nuevamente.

Esta vez todo pareció ir bien y recibimos un mensaje de que el correo se envió correctamente. Aparentemente, a excepción del error temporal ingresado deliberadamente en la contraseña de correo del dominio, no cometimos ningún otro error.

Pero para asegurarnos de que la carta realmente fue entregada al destinatario, ingresemos el correo con la dirección [correo electrónico protegido] y mira el resultado.

Como puede ver, la carta de la dirección. [correo electrónico protegido], desde el cual enviamos un mensaje de correo electrónico con el nombre "Comentarios" llegó exitosamente al administrador del sitio. Al mismo tiempo, el cuerpo de la carta contiene todo el contenido que generamos en el script utilizando los datos recibidos del formulario de comentarios, a saber:

  • Nombre del remitente: Nikolay;
  • Dirección del remitente: [correo electrónico protegido];
  • Asunto del mensaje: Comprobando el envío de correo;
  • Contenido del mensaje: mensaje de prueba.

Ahora, después de comprobar con éxito el envío de correo, puede desactivar el modo de depuración SMTP asignando la propiedad Depuración SMTP(pos.50) valor 0.

Así, completamos la tarea de crear una herramienta para enviar correo vía SMTP con autorización utilizando un servidor de correo de terceros.

Por ejemplo, en el próximo artículo veremos cómo enviar correos electrónicos de confirmación para recuperar los datos de la cuenta de usuario registrado.

Archivos fuente del sitio

Los archivos fuente del sitio con las actualizaciones realizadas en este artículo se pueden descargar desde los materiales adicionales adjuntos:

  • archivos del directorio www
  • Tablas de bases de datos MySQL

Enviar correo a través de SMTP desde un servidor local le permite probar el envío de mensajes desde un sitio ubicado en una máquina local, o más simplemente, un servidor local. Para hacer esto, puede utilizar cualquier servicio de correo Yandex, Google o mail.ru.

En primer lugar, SMTP (Protocolo simple de transferencia de correo) es un protocolo de red ampliamente utilizado diseñado para transmitir correo electrónico a través de redes TCP/IP. Y todos los servicios de correo electrónico populares tienen dichos protocolos.

Con la llegada de los servidores locales, ya no era necesario elegir un proveedor de hosting para comprobar el rendimiento de scripts individuales o sistemas cms, y mucho menos pagar por ello. Es mucho más fácil probar todo en una computadora y luego podrás mostrarles a todos lo que has "hecho".

Muchos de estos servidores ya tienen software integrado y la funcionalidad necesaria para trabajar con correo, solo necesitas configurarlo correctamente.

Para comprobar la funcionalidad de dicho correo, se requiere lo mínimo imprescindible:

  • Puede utilizar Openserver como servidor local.
  • Y un script simple, cuya plantilla se puede encontrar justo debajo.
  • Puede utilizar cualquier servidor de correo.

Envío de correo php a través de la configuración del script SMTP

Es necesario editar una plantilla de script simple que se puede copiar a continuación o descargar de cientos de sitios similares.

Primero, debes cambiar algunos valores en la plantilla del script.
a — cambiar a la dirección postal donde se enviará el mensaje de correo.
sujeto - asunto de la carta
mensaje - el mensaje en sí o el cuerpo de la carta.

Ejemplo de mi guión:

Por supuesto, puede ampliar un poco la funcionalidad y hacer que el script muestre un mensaje sobre el envío de correo. Aunque en realidad es el servidor SMTP el que realiza el envío, y el script sólo genera el mensaje.

Por ejemplo, puedes escribir esto:

Todos los valores sustituidos deben estar entre comillas; de lo contrario, el script generará un error. Después de esto, puede guardar el script en la carpeta del servidor local.

Por ejemplo: dominios/enviar/index.php y comience a configurar el envío de correo a través de SMTP opensrerver.

El correo llegará a cualquier dirección que se especifique en el script en lugar del valor 'a' , pero este correo será procesado y enviado exactamente por el SMTP que se especificará en la configuración de openserver.

  1. Iniciando el servidor
  2. Abra el módulo openserver con la configuración en el menú "correo"
  3. Rellenamos todos los campos como se muestra en la imagen, mientras sustituimos el nombre de usuario, el correo electrónico del remitente y la contraseña de un buzón de correo Yandex real.

Guardamos la configuración y después de reiniciar el servidor, puede acceder al script en sí. Desde la carpeta "Mis sitios", abra la carpeta "enviar" en la que se encuentra el script index.php previamente guardado.

Tan pronto como se acceda a este script, aparecerá información en una nueva ventana del navegador indicando que el script se ha completado.

Después de esto, debe verificar su buzón de correo, cuya dirección se especificó en el script, para ver si ha llegado la carta.

Si no está allí, significa que algo no está configurado correctamente o que la carta terminó en la carpeta de spam.

Todas las demás configuraciones son similares, pero por si acaso, la información adicional no vendrá mal.

Para configurar el envío de correo a través de SMTP mail ru, simplemente necesita reemplazar los parámetros de Yandex con parámetros de mail ru.

Y para no reconstruir el servidor local cada vez, es mejor configurar diferentes perfiles de openserver. Cómo hacer esto se muestra en el video tutorial.

En este caso, bastará con cargar el perfil y todas las configuraciones especificadas para este perfil estarán disponibles después de reiniciar el servidor. Es algo muy conveniente y funciona de manera muy simple.

Para cada perfil (no importa en absoluto cómo se llamará), se deben realizar sus propias configuraciones, a menos, por supuesto, que planee utilizar scripts, sistemas cms y aplicaciones con diferentes parámetros.
De lo contrario, puede arreglárselas con la configuración predeterminada.

En cuanto al correo SMTP ru, aquí todo es idéntico.

Los datos de Yandex se cambian a datos de correo ru

Envío de correo vía smtp google

Para configurar el envío de correo a través de Google SMTP, se necesita un poco de esfuerzo.

En primer lugar, crear un perfil en Google es más complicado que en otros sistemas Yandex y Mail Ru.
En segundo lugar, el sistema no dejará pasar la carta simplemente, incluso si usted proporciona su información de inicio de sesión. Para empezar, le enviará una carta que contiene toda la información necesaria sobre instrucciones adicionales.

De lo contrario Para Google se configura exactamente de la misma manera. Sólo cambian todos los datos.

Para configurar el envío de correo a través de otro SMTP, todos los datos serán aproximadamente los mismos.

Si todo salió bien y las cartas llegaron al destinatario especificado, entonces todo se hizo correctamente. Sería genial si compartieras tus experiencias en los comentarios.

Para que un determinado sitio web pueda funcionar de manera eficiente y productiva, su creación debe abordarse de la manera más responsable y cuidadosa posible. Merece especial atención la elección del sistema que se utilizará para crear una tienda online. El caso es que una plataforma comercial especializada en la venta de bienes o servicios debe permitir la implementación de todas las funcionalidades necesarias y ser fácil de usar, tanto para los administradores involucrados en el mantenimiento y llenado de sitios, como para los clientes de las tiendas online. Muchas personas y empresas que se enfrentan a la cuestión de elegir un CMS adecuado analizan si elegir Magento o OkayCMS. Comparemos las características y capacidades de estos motores de sitios web.

Al trabajar en su propio sitio web, una persona o empresa tendrá que esforzarse mucho; solo en este caso podrá contar con resultados positivos y obtener una herramienta verdaderamente eficaz. Una de las cuestiones fundamentales que habrá que resolver incluso antes de empezar a crear un sitio web será cómo decidir cuál es la opción de CMS más adecuada. A continuación, compararemos dos CMS: Joomla o OkayCMS, y prestaremos atención a las características de cada uno de ellos.

Tener su propio sitio web es uno de los requisitos fundamentales para un negocio eficaz y exitoso. Las estadísticas indican claramente un aumento en el número de compras de diversos bienes y pedidos de servicios a través de Internet. Teniendo esto en cuenta, la mayoría de empresas comerciales ya son conscientes de la necesidad de tener su propio sitio web. Sin embargo, el mero hecho de disponer de un recurso en Internet no es suficiente para contar con su eficacia, rentabilidad y beneficios empresariales esperados.

Al prepararse para crear su propio sitio web o abrir una tienda en línea, es necesario tener en cuenta y analizar muchas cuestiones, así como resolver varios problemas. Sólo en este caso podrá contar con que su proyecto traerá resultados positivos y podrá cumplir plenamente con sus expectativas. Entre las diversas cuestiones relacionadas con el desarrollo de una tienda online, merece especial atención la cuestión de la elección de un CMS. Para que le resulte más fácil decidir cuál es el motor óptimo para usted, dentro de

Cuando planean crear su propio sitio web para una futura tienda en línea, un número bastante grande de personas e incluso empresas especializadas en ventas se enfrentan a una elección difícil y extremadamente importante: cuál de los CMS existentes elegir. Si estás pensando en qué elegir: PrestaShop o OkayCMS, te sugerimos leer este artículo, en el que compararemos estos dos sistemas para la creación de sitios en Internet, en particular, tiendas online.

Dado que está prohibido enviar mensajes anónimos desde servidores de hosting virtuales de Windows, el envío de cartas debe realizarse a través de un servidor SMTP, para lo cual también es posible utilizar nuestro sistema de correo.

¿Cómo enviar correos electrónicos usando PHP?

Usando cualquier clase PHP que admita autorización en el servidor smtp. Por ejemplo, puede utilizar el conjunto de clases PHPMailer.

También puede utilizar nuestro ejemplo, que implementa el envío de cartas mediante un servidor SMTP, que requiere autorización. Por lo tanto, no olvide agregar los detalles de acceso apropiados al script, por ejemplo:

// Si necesita mostrar el registro de la sesión SMTP, puede descomentar la siguiente línea. // $_SERVER["depurar"] = verdadero; función MailSmtp ($reciever, $asunto, $contenido, $headers, $debug = 0) ( $smtp_server = "smtp.site"; // dirección del servidor SMTP$smtp_port = 25; // puerto del servidor SMTP$smtp_user = " [correo electrónico protegido]" ; // Nombre de usuario para autorización en el servidor SMTP$smtp_password = "pAsSword"; // Contraseña para autorización en el servidor SMTP$correo_de = " [correo electrónico protegido]" ; // Buzón desde donde se envía la carta$calcetín = fsockopen ($smtp_server, $smtp_port, $errno, $errstr, 30); $cadena = fgets ($calcetín, 512); if (! $calcetín ) ( printf ( "El socket no está creado\n" ); exit(1 ); ) smtp_msg ($sock , "HELO " . $_SERVER [ "SERVIDOR_NOMBRE" ]); smtp_msg($calcetín, "AUTH INICIO DE SESIÓN"); smtp_msg ($calcetín, base64_encode ($smtp_user)); smtp_msg ($calcetín, código base64 ($smtp_contraseña)); smtp_msg ($calcetín, "CORREO DE:<" . $mail_from . ">" ); smtp_msg ($calcetín, "RCPT A:<" . $reciever . ">" ); smtp_msg ($sock , "DATOS" ); $encabezados = "Asunto: " . $asunto . "\r\n" . $encabezados ; $datos = $encabezados . "\r\n\r\n" . $contenido . "\r\n." ; smtp_msg ($calcetín, $datos); smtp_msg ($calcetín, "SALIR"); fclose ($calcetín); ) función smtp_msg ($calcetín, $msg) ( si ( ! $calcetín ) ( printf ("¡Socket roto!\n" ); exit(1 ); ) if (isset($_SERVER [ "depurar" ]) && $_SERVER [ "depurar" ]) ( printf ( "Enviar desde nosotros : %s
" , nl2br (htmlspecialchars ($msg )); ) fputs ($sock , " $msg \r\n" ); $str = fgets ($sock , 512 ); if (! $sock ) ( printf ( "El zócalo es abajo\n" ); salir(1); ) else ( if (isset($_SERVER [ "depurar" ]) && $_SERVER [ "depurar" ]) ( printf ("Obtenido del servidor: %s
" , nl2br (htmlspecialchars ($str )); ) $e = explotar (" " , $str ); $code = array_shift ($e ); $str = implosionar ( " " , $e ); if ($code > 499 ) ( imprimirf ( "Problemas con la conversación SMTP.

Código %d.
Mensaje %s
"
, $código , $cadena ); salir(1); ) ) ) ?>

Descargue un ejemplo de un script listo para usar con la función MailSmtp(): smtpauth.php.sample

Puede utilizar la función MailSmtp() descrita anteriormente para reemplazar directamente la función mail(); considere un ejemplo de la forma más simple en PHP:

// Encabezados de mensajes, definen la codificación del mensaje, campos De, A, etc.$headers = "Versión MIME: 1.0\r\n" ; $encabezados .= "Tipo de contenido: texto/html; charset=windows-1251\r\n"; $encabezados .= "Para: $para \r\n" ; $encabezados .= "De: nombre del remitente " ; // correo ($a, $asunto, $mensaje, $encabezados); require_once "smtpauth.php"; MailSmtp ($a, $asunto, $mensaje, $encabezados); ) ?>
A quien: Sujeto: Texto: 
 
 

Para que este formulario funcione sin la función mail(), incluimos el archivo smtpauth.php a través de require_once y llamamos a la función MailSmtp() descrita en él con argumentos similares a mail(). Al mismo tiempo, comentamos la llamada mail() en el código para evitar errores al ejecutar el script.

¿Cómo enviar correos electrónicos usando ASP.NET?

Si está utilizando la versión 2.0, utilice la clase MailMessage Sistema.Net.Mail), Bien descrito.

A continuación se muestran ejemplos de su uso para los lenguajes C# y VisualBasic:

Ejemplo para el lenguaje C#:

<% @Page Language="c#" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% MailMessage message = new MailMessage(); //creando una nueva carta mensaje.Para.Agregar(" [correo electrónico protegido]"); // agregando la dirección del destinatario mensaje.De = nueva dirección de correo("de@ dominio.tld", "Nombre del remitente"); // especificando el nombre y la dirección del remitente message.Subject = "Asunto del mensaje"; // especificando el asunto de la carta mensaje.BodyEncoding = System.Text.Encoding.UTF8; // especificando la codificación de letras mensaje.IsBodyHtml = falso; // especificando el formato de la letra (verdadero - HTML, falso - no HTML) mensaje.Cuerpo = "Texto del mensaje"; // especificando el texto (cuerpo) de la carta Cliente SmtpClient = nuevo SmtpClient("smtp.site",25); // creando una nueva conexión al servidor "smtp.site" client.DeliveryMethod = SmtpDeliveryMethod.Network; // define el método para enviar mensajes client.EnableSsl = falso; // desactiva la necesidad de utilizar una conexión segura al servidor client.UseDefaultCredentials = falso; // deshabilitar el uso de detalles de autorización predeterminados client.Credentials = nueva NetworkCredential("postmaster@ dominio.tld", "***contraseña***"); // especificando los detalles necesarios (nombre de usuario y contraseña) para la autorización en el servidor SMTP cliente.Enviar(mensaje); // enviar mensaje %>

Descargue un ejemplo de un formulario terminado que demuestra el uso de este método: MailForm.aspx.

Ejemplo para el lenguaje VisualBasic:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Net.Mail" %> <% @Import Namespace="System.Net" %> <% Dim smtpMssg AS new MailMessage smtpMssg.From = New MailAddress ("admin@dominio.tld", "Nombre_remitente") smtpMssg.To.Add (" [correo electrónico protegido]") "agregando la dirección del destinatario smtpMssg.Subject = "Asunto del correo electrónico" "indicación del asunto de la carta smtpMssg.Body = "Texto del mensaje" "indicación del texto (cuerpo) de la carta smtpMssg.BodyEncoding = System.Text.Encoding.UTF8 "indicación de la codificación de letras smtpMssg.IsBodyHtml = falso " indicación del formato de la letra (verdadero - HTML, falso - no HTML) Atenuar SmtpMail como nuevo SmtpClient("smtp.site", 25) "declaración de un nuevo objeto de tipo "SmtpClient" SmtpMail.DeliveryMethod = SmtpDeliveryMethod.Network "indicación del método de entrega de la carta SmtpMail.UseDefaultCredentials = Falso "deshabilitar el uso de credenciales de autorización de forma predeterminada" SmtpMail.EnableSsl = Falso " desactiva la necesidad de utilizar una conexión segura al servidor SmtpMail.Credentials = nueva NetworkCredential("postmaster@ dominio.tld", "***contraseña***") "indicando los datos necesarios (nombre de usuario y contraseña) para la autorización en el servidor SMTP SmtpMail.Enviar(smtpMssg) " enviando un mensaje %>

También hay una clase SmtpMail obsoleta (y obsoleta) (que usa el espacio de nombres Sistema.Web.Mail). A continuación se muestra un ejemplo de su uso para el lenguaje VisualBasic:

<% @Page Language="VB" Debug="true" %> <% @Import Namespace="System.Web" %> <% @Import Namespace="System.Web.Mail" %> <% Dim smtpMssg = new MailMessage "declaración de un nuevo objeto de tipo "MailMessage" smtpMssg.From = "nombre_remitente dominio.tld>" "Indicación del nombre y dirección del remitente smtpMssg.To = "admin@ dominio.tld" " indicación de la dirección del destinatario smtpMssg.BodyFormat = Formatodecorreo.Texto " indicación del formato de la carta smtpMssg.BodyEncoding = Codificación.UTF8 "indicando la codificación de letras smtpMssg.Subject = "Asunto del correo electrónico" "indicación del asunto de la carta smtpMssg.Body = "Texto del mensaje" " indicación del texto de la carta smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate",1) "que indica la necesidad de autorización SMTP en el servidor smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "admin@ dominio.tld") "nombre de usuario para autorización smtpMssg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "***contraseña***") "contraseña para autorización SmtpMail.SmtpServer = "smtp.sitio" "especificando la dirección del servidor SMTP SmtpMail.Enviar(smtpMssg) " enviando un mensaje %>

¿Cómo enviar correos electrónicos usando ASP?

Tenga en cuenta que cuando utilice nuestro servidor SMTP, se requiere autorización, así que no olvide agregar los detalles de acceso apropiados al script, por ejemplo:

<% iConfig = Server.CreateObject("CDO.Configuration") Set iConfig = Server.CreateObject("CDO.Configuration") With iConfig.Fields .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.сайт" .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/languagecode") = "ru" .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "postmaster@dominio.tld" .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "contraseña" .Update End With Set cdoMessage = CreateObject("CDO.Message") Con cdoMessage Set .Configuration = iConfig .From = "Usuario de prueba dominio.tld>" .To = "Usuario " .Subject = "Hola, usuario" .TextBody = "Escribo este mensaje desde un script ASP." .Enviar finalizar con Establecer cdoMessage = Nada Establecer iConfig = Nada %>

Algunos CMS ya tienen herramientas integradas para enviar correspondencia o módulos correspondientes; veamos los más populares.

Wordpress

Para este CMS hay un módulo especial "WP Mail SMTP", un ejemplo de su configuración se describe en la página del módulo.

Preste atención a la ilustración del ejemplo, en nuestro sistema de correo es necesario utilizar el puerto 25 y no se requiere cifrado SSL.

Joomla

En el panel de administración, vaya a la sección "Configuración general", seleccione la pestaña "Servidor". En el campo "Correo", debe seleccionar el método de envío como "servidor SMTP", en los campos "dirección del servidor SMTP" e "inicio de sesión SMTP" y "contraseña SMTP" especifique los detalles apropiados del sistema de correo, por ejemplo: sitio smtp, caja@tu_dominio y correspondiente contraseña.

drupal

Este CMS también dispone de su propio módulo para trabajar con un servidor SMTP, basado en el PHPMailer. Puede descargar este módulo en su página en el sitio web de CMS Drupal; una descripción de la instalación del módulo está disponible en el archivo que lo acompaña.

NetCat

Este CMS no tiene funciones integradas para trabajar con un servidor SMTP. Para enviar correo utilizando scripts del sitio, podemos ofrecerle el uso de nuestra solución; para conectarla debe realizar los siguientes pasos:

  • Descargue un archivo con los archivos necesarios de nuestro sitio web ( enviar_auth_mail.php Y correo.inc.php) y descomprímalo en su computadora;
  • Editar archivo enviar_auth_mail.php del archivo, indicando en él los detalles de conexión al servidor SMTP deseado:

    • $correo_smtpServer = "sitio smtp"; (Dirección del servidor SMTP)
    • $puerto_correo = "25" ; (puerto de conexión)
    • $correo_nombredeusuario = "[correo electrónico protegido]" ; (nombre de usuario para autorización en el servidor SMTP)
    • $contraseña_correo = "Contraseña"; (contraseña de autorización en el servidor SMTP)
  • Crear una copia de seguridad del archivo dominio.tld/www/netcat/admin/mail.inc.php;
  • descargar archivos enviar_auth_mail.php Y correo.inc.php al sitio virtual en el directorio dominio.tld/www/netcat/admin/

dominio.tld debe ser reemplazado con su nombre de dominio.

La solución propuesta funciona con todos los módulos de NetCat que utilizan las funciones estándar de este CMS para enviar correo.




Arriba