Отправка электронной почты с контентом из PHP / Mysql - PullRequest
1 голос
/ 30 августа 2010

Я хочу отправлять электронные письма, где данные получены из запроса php / mySQL.

Я знаю, что HTML будет отображаться в письме, но я не думаю, что коды php будут.* Так есть ли способ, где я могу отправлять электронные письма с содержимым, запрашиваемым из базы данных MySQL?

Я уже ищу здесь, есть одна тема, которая затрагивает ее, но человек, который посоветовал, предложил экспортировать PDF или использовать сторонний инструмент, который в моем случае не применим.

Спасибоза помощь ребята :) 1009 *

Ответы [ 2 ]

2 голосов
/ 30 августа 2010

Используйте PHPMailer для генерации электронной почты на сервере. Это позволяет очень легко генерировать составные сообщения (обычный текст + HTML, с вложениями и встроенными / встроенными изображениями). В основном:

// 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);
}
0 голосов
/ 07 мая 2013

Чтобы избежать проблем со спамом, вы можете обернуть PHPMailer в классе и создать экземпляр для каждого адреса электронной почты, считанного из таблицы базы данных.

Для каждого адреса электронной почты вы можете создать новый экземпляр и выполнитьвроде ->setMailAddr($mail,$fullName) и после отправки по электронной почте уничтожить этот экземпляр.

В идеале нужно размещать новый экземпляр на каждом POST.В этом случае вы можете поместить ФОРМУ на страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...