使用表格中的数据发送php中的邮件(Mysql)

时间:2011-11-25 06:12:46

标签: php mysql email joomla

我需要发送一封包含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);

我不知道怎么做。请有人帮助我。

提前致谢。

维奈

2 个答案:

答案 0 :(得分:2)

您可以使用JUtility类发送邮件:

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

$ recipient是您发送邮件的电子邮件地址,最后一个参数是指示电子邮件是否使用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']}!";

如果你的&#34; getData()&#34;方法是返回一个对象..实际上,制作消息只是构建一个字符串并用数据填充它。 对于非常大的电子邮件,我通常有这样的模板:

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

然后你应该做的是:

$ message = file_get_contents(&#39; your_template.tpl&#39;); $ search = array(&#34; %% USERNAME %%&#34;,&#34; %% ARTICLE_TITLE %%&#34;); $ replace = array($ dataarray [&#39; name&#39;],$ dataarray [&#39; article_title&#39;]); $ message = str_replace($ search,$ replace,$ message);

这就是全部!

答案 1 :(得分:0)

这是php邮件功能的工作方式。

<?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函数。