Отправить письмо в php с данными в таблице (Mysql) - PullRequest
1 голос
/ 25 ноября 2011

Мне нужно отправить электронное письмо с данными из таблицы mysql.Я использую joomla1.5.

  $dataarray = $this->getData(); // returns data from table
  $header = "<div> <table><tr></tr>";
  $body = "Here I need to add table data";
  $footer = "</table></div>";
  $mailer->setSubject('Mailing');
  $mailer->setBody($header.$body .$footer);

Я не знаю, как это сделать.Пожалуйста, кто-нибудь, помогите мне.

Заранее спасибо.

Vinay

Ответы [ 2 ]

2 голосов
/ 25 ноября 2011

Вы можете использовать класс JUtility для отправки почты:

JUtility::sendMail($mailfrom, $fromname, $recipient, $subject, $message, true);

$ получатель - это адрес электронной почты, на который вы отправляете почту, а последний параметр - флаг, указывающий, использует ли электронная почта HTML или нет (true = использует HTML). Однако, если вам нужно отправить много писем, лучше использовать почтовую программу Joomla вместо того, чтобы каждый раз вызывать JUtility.

$mail =& JFactory::getMailer();

$mail->setSender(array($from, $fromname));
$mail->setSubject($subject);
$mail->setBody($body);
$mail->IsHTML(true);
$mail->addRecipient($recipient);
$mail->Send();

Надеюсь, это помогло!

Я редактирую, я забыл упомянуть, как работать с вашими данными

Чтобы создать тело сообщения, это будет зависеть от того, как возвращаются ваши данные. Если это ассоциативный массив, вы должны сделать что-то вроде этого:

$message = "Hello {$dataarray[ 'name' ]}, thank you for adding a comment to our article {$datarray[ 'article_title']}!";

Если ваш метод getData () возвращает объект ... на самом деле создание сообщения - это просто создание строки и заполнение ее вашими данными. Для очень больших писем у меня обычно есть такой шаблон:

Hello %%USERNAME%%, thank you for adding a comment to our article %%ARTICLE_TITLE%%!

И тогда вы должны сделать следующее:

$ message = file_get_contents ('your_template.tpl'); $ search = array ("%% USERNAME %%", "%% ARTICLE_TITLE %%"); $ replace = array ($ dataarray ['name'], $ dataarray ['article_title']); $ message = str_replace ($ search, $ replace, $ message);

Вот и все!

0 голосов
/ 25 ноября 2011

Так работает функция php mail.

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

Теперь вам нужно получить значения (то есть сообщения) из таблиц mysql.Вы можете использовать обычные команды mysql для извлечения этих данных, а затем использовать функцию php mail.

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