Pregunta

Quiero enviar mensajes de correo electrónico, donde los datos son de un PHP / MySQL Query.

Sé que html hará que en el correo electrónico, pero no creo que los códigos PHP.

Entonces, ¿hay alguna manera donde puedo enviar correos electrónicos con contenido consultados a partir de una base de datos MySQL?

Ya búsqueda aquí, hay un tema que lo cubre, pero la persona que asesoró sugirió una exportación de PDF o utilizar una herramienta de 3 ª parte que en mi caso no son aplicables.

Gracias por la ayuda chicos:)

¿Fue útil?

Solución

PHPMailer para generar el correo electrónico en el servidor. Esto hace que sea muy fácil de generar mensajes concatenados (texto sin formato html +, con archivos adjuntos e imágenes incrustadas / línea). Básicamente:

// set up PHPMailer
$mail = new PHPMailer();
$mail->SetFrom('you@yourserver.com');
$mail->AddReplyTo('you@somewhereelse.com');
$mail->Subject('Your profile');
$mail->IsHTML(TRUE);

// do your database query
$con = connect_to_database();
$stmt = run_database_query($con, "SELECT ... FROM ...");

$data = fetch_from_database($stmt);


// set the email address
$mail->AddAddress($data['email'], $data['fullname']);


// html content for smart email clients
$html = <<<EOL
<h1>Welcome</h1>

<p>Your username is {$data['username']}.</p>
EOL;

// plain text alternate content
$text = <<<EOL
Welcome

Your username is {$data['username']}.
EOL;

// add the content to the mail
$mail->MsgHTML($html);
// add alternate content 
$mail->AltBody($text);


// send the mail
if ($mail->Send()) {
   // mail sent correctly
} else {
   die("Uhoh, could not send to {$mail['email']}:" . $mail->ErrorInfo);
}

Otros consejos

Para evitar el spam cuestiones que puede envolver el PHPMailer en una clase y cree una instancia que en cada dirección de correo electrónico lee de la tabla de base de datos.

Para cada dirección de correo electrónico que puede crear una nueva instancia y hacer una especie de ->setMailAddr($mail,$fullName) y después de enviar el correo electrónico destruir este caso.

Lo ideal es colocar una nueva instancia en todos los envíos. En este caso, se puede poner un formulario en la página.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top