¿Cómo configurar SMTP en PHP?

Adquiera PHPMailer:

Dirección del proyecto PHPMailer: use el comando git para clonar PHPMailer localmente, o haga clic directamente en "Descargar ZIP" en la parte inferior derecha de la página del proyecto para obtener el paquete de código PHPMailer completo y luego descomprímalo. en la zona.

Paso 1: Habilitar nuestro buzón QQ para enviar correos electrónicos.

¿Cómo puedo decir que puedo enviar correos electrónicos aquí? De hecho, todos nuestros buzones de correo pueden enviar correos electrónicos, pero si queremos enviar correos electrónicos en nuestro sitio web, debemos configurar nuestro buzón QQ, porque nuestro sitio web ahora existe como un cliente de terceros.

Paso 1: Habilitar nuestro buzón QQ para enviar correos electrónicos. De hecho, todos nuestros buzones de correo pueden enviar correos electrónicos, pero si queremos enviar correos electrónicos en nuestro sitio web, debemos configurar nuestro buzón QQ, porque nuestro sitio web ahora existe como un cliente de terceros.

Dado que usaremos el servidor SMTP para enviar más tarde, se recomienda habilitar los dos primeros elementos aquí. Cuando haga clic en Abrir, se le preguntará:

Cuando complete los pasos anteriores, obtendrá un código de autorización. Puede copiarlo primero y lo usaremos más tarde (si abre dos elementos, obtendrá dos códigos de autorización, ¡use el último! O haga clic en Generar código de autorización a continuación para obtener un nuevo código de autorización, ¡que debe ser el último!) .

Paso 2: Habilite nuestro php para usar el buzón qq para enviar correos electrónicos. PHPMailer requiere soporte de extensión de socket de PHP y PHPMailer requiere cifrado SSL cuando se vincula a buzones de correo de dominio QQ. PHP fijo requiere soporte de openssl, puede ver phpinfo. . Si existen los dos elementos siguientes, puede usarlos independientemente del número de versión de openssl; en muchos hosts virtuales, PHP no admite extensiones de openssl y puede tener problemas.

Paso 3: Procese algo en PHPMailer. Debido a que hay muchos archivos en la carpeta PHPMailer que descargamos, no los necesitamos, por lo que no hay necesidad de desperdiciar esta memoria. Podemos optimizar esta carpeta. Aquí solo guardé los siguientes archivos: class.phpmailer.php, class.phpmaileroauth.php, class.pop3.php, class.smtp.php y PHPMailerAutoload.php.

/*Método para enviar correo electrónico

*@param? $a: ¿Receptor? $título: ¿título? $content:El contenido del correo electrónico

*@return? ¿Booleano? Verdadero: ¿Se envió correctamente? Falso: el envío falló.

*/Función? Sendmail ($to,$title,$content){// ¿Presentamos los archivos principales de PHPMailer? Utilice require_once para incluir una advertencia para evitar definiciones duplicadas de la clase PHPMailer.

require _ once(" PHP mailer/class . PHP mailer . PHP ");?

require _ once(" PHP mailer/class . SMTP . PHP "); // Crear una instancia de la clase principal PHPMailer

$Mail? =?¿Nuevo? PHP mailer(); //¿Quieres habilitar la depuración smtp? ¿Se recomienda habilitarlo en el entorno de desarrollo? ¿Puedes comentar el entorno de producción? El modo de depuración está desactivado de forma predeterminada.

$ correo->SMTPDebug? =?1;//Utilice la autenticación SMTP para enviar correos electrónicos.

$ mail-& gt; ISS MTP(); // ¿Smtp requiere autenticación? Esto debe ser cierto.

$mail->SMTPAuth = true//La dirección del servidor de la dirección de correo electrónico del dominio QQ.

$ correo->¿Moderador? =? SMTP .QQ .com ' // Configurar la verificación de inicio de sesión mediante cifrado SSL.

$mail->SMTPSecure? =?SSL ';//Establezca el número de puerto del servidor remoto para la conexión SSL al servidor SMTP. El valor predeterminado era 25 antes, pero ¿ahora el nuevo parece no estar disponible? ¿Opcional 465 o 587

$mail->Puerto? =?465;//¿Establecer el encabezado helo de smtp? Este es contenido opcional y arbitrario

//?$ mail->Cillo? =?Hola? smtp.qq.com? Server';

//¿Establecer el dominio de host del remitente? ¿Dispensable? ¿Predeterminado a localhost? Para cualquier contenido, se recomienda utilizar su nombre de dominio.

$ correo->¿Nombre de host? =?'';//¿Establecer la codificación para enviar correos electrónicos? ¿GB2312 opcional? ¿Me gusta utf-8? Se dice que utf8 provocará caracteres confusos cuando algunos clientes reciban mensajes.

$ mail-& gt;¿Conjunto de caracteres? =?UTF-8’;//¿Establecer el nombre del remitente (apodo)? Cualquier cosa que muestre el nombre del remitente antes de la dirección de correo electrónico del remitente en el mensaje del destinatario.

$correo->¿DeNombre? =?Laboratorio LSGO; //¿cuenta de inicio de sesión smtp? Complete el número qq aquí en formato de cadena.

$ correo->¿Nombre de usuario? = '12345678@QQ.com'; //Inicio de sesión SMTP //¿contraseña? Utilice el código de autorización generado (el último código de autorización que le acabo de pedir que guarde)

$ mail-> =?sqyofzbqlfkntbncl ';//¿Establecer la dirección de correo electrónico del remitente? Complete el "Correo electrónico del remitente" mencionado anteriormente aquí.

$ mail-& gt;¿Desde dónde? =?12345678@QQ.com ';//¿El cuerpo del correo electrónico está codificado en HTML? Tenga en cuenta que este es un método. ¿Ya no es un atributo? Verdadero o Falso

$ mail->isHTML(true);?

//¿Establecer la dirección de correo electrónico del destinatario? ¿Este método tiene dos parámetros? ¿El primer parámetro es la dirección de correo electrónico del destinatario? ¿El segundo parámetro es el apodo establecido para la dirección? ¿Los diferentes sistemas de correo electrónico manejarán los cambios automáticamente? El segundo parámetro aquí tiene poca importancia.

$mail->AddAddress($to, "lsgo online notification"); // ¿Agregar varios destinatarios? Llamar a un método varias veces.

//?$mail->Addddress ('XXX @ 163.com','notificación lsgo online');

//Agregue el asunto de este correo electrónico.

$ correo->Asunto? =?$ título//¿Agregar cuerpo del mensaje? Si isHTML anterior está configurado en verdadero, ¿puede ser una cadena HTML completa? Por ejemplo, utilice la función file_get_contents para leer un archivo html local.

$ correo->Cuerpo? =?$Contenido; //¿Agregar archivo adjunto a este correo electrónico? ¿Este método también tiene dos parámetros? ¿El primer parámetro es el directorio donde se almacena el archivo adjunto (directorio relativo o directorio absoluto)? El segundo parámetro es el nombre del archivo adjunto en el archivo adjunto del correo electrónico.

//?$mail->addAttachment('./d.jpg','mm.jpg');

//De manera similar, este método se puede llamar varias veces ? Cargar varios archivos adjuntos

//?$mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');

$status ? =?$mail->send();//Juicio simple e información rápida

Si ($status)? {¿devolver? verdadero;

}else{return? Falso;

}

} & lt? phprequire_once(".

/functions . PHP ");$flag?=?SendMail('456789@qq.com ',' notificación en línea de lsgo', '¡Felicitaciones por unirse exitosamente al laboratorio LSGO y comenzar su viaje de aprendizaje!');if($ flag) {echo? "¡Correo electrónico enviado correctamente! ";

}else{echo?" ¡Error al enviar el correo electrónico! ";

}?>