本文整理汇总了PHP中Mailer::setBody方法的典型用法代码示例。如果您正苦于以下问题:PHP Mailer::setBody方法的具体用法?PHP Mailer::setBody怎么用?PHP Mailer::setBody使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mailer
的用法示例。
在下文中一共展示了Mailer::setBody方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: handle
/**
* handle user request
*/
function handle()
{
global $INPUT;
global $conf;
if (!$INPUT->bool('send')) {
return;
}
// make sure debugging is on;
$conf['plugin']['smtp']['debug'] = 1;
// send a mail
$mail = new Mailer();
if ($INPUT->str('to')) {
$mail->to($INPUT->str('to'));
}
if ($INPUT->str('cc')) {
$mail->to($INPUT->str('cc'));
}
if ($INPUT->str('bcc')) {
$mail->to($INPUT->str('bcc'));
}
$mail->subject('DokuWiki says hello');
$mail->setBody("Hi @USER@\n\nThis is a test from @DOKUWIKIURL@");
$ok = $mail->send();
// check result
if ($ok) {
msg('Message was sent. SMTP seems to work.', 1);
} else {
msg('Message wasn\'t sent. SMTP seems not to work properly.', -1);
}
}
示例2: process
public function process($params)
{
if (!isset($params[0])) {
throw new MException("Mod id not specified.");
}
$modId = $params[0];
// also select devname and email for mailing updates
$sth = $this->getDB()->prepare("SELECT id, name, devname, devemail, version, available\r\n\t\t\t\t\t\tFROM mods\r\n\t\t\t\t\t\tWHERE id = :id");
$sth->bindValue(":id", $modId, PDO::PARAM_INT);
$sth->execute();
$modExists = $sth->fetch(PDO::FETCH_ASSOC);
if (!empty($modExists)) {
// this mod is in the repo
if ($modExists["available"] == 0) {
// check whether file has been uploaded yet
$fileLocation = sprintf('%1$s../downloads/mods/%2$s/%3$d/%2$s.mod.dll', MBASE_PATH, $modExists["name"], $modExists["version"]);
if (!file_exists($fileLocation)) {
throw new MException(sprintf("Mod %s has no version %d in the repo yet.", $modExists["name"], $modExists["version"]));
} else {
// file exists on server, nothing to stop us from activating now :)
$sth = $this->getDB()->prepare("UPDATE mods\r\n\t\t\t\t\t\t\t\t\tSET available = 1\r\n\t\t\t\t\t\t\t\t\tWHERE id = :id");
$sth->bindValue(":id", $modExists["id"], PDO::PARAM_INT);
if ($sth->execute()) {
// send mail to developer to notify him of the update
$m = new Mailer(new MailAddress("mods@scrollsguide.com", sprintf("%s Mod Repo", REPO_NAME)));
$m->addRecipient(new MailAddress($modExists["devemail"], $modExists["devname"]));
$m->setSubject("Your mod has been added.");
$tpl = $m->getMustache()->loadTemplate("mod_activated.mustache");
$m->setBody($tpl->render(array("REPONAME" => REPO_NAME, "REPOURL" => REPO_URL, "DEVNAME" => $modExists["devname"], "MODNAME" => $modExists["name"])));
$m->send();
echo sprintf("Mod %s is now available. Wait for the cache to update.\n", $modExists["name"]);
} else {
throw new MException("Mot not made available, database error.");
}
}
} else {
throw new MException(sprintf("Mod %s is already available.", $modExists["name"]));
}
} else {
// mod is not in the submission queue
throw new MException(sprintf("Mod %d does not exist in the submission queue.", $modId));
}
}
示例3: delete
public function delete($file)
{
$encodedEntryURI = $this->policy->encodedEntryURI($file);
$url = 'http://rs.qiniu.com/delete/' . $encodedEntryURI;
$access_token = $this->policy->genAccessToken($url);
$HttpReuqst = new Request($url, 'POST');
$HttpReuqst->setHeader('Authorization', 'QBox ' . $access_token);
$response = $HttpReuqst->send();
$code = $response->getStatus();
if ($code == 599) {
//给七牛发邮件
$body = print_r($response->getRequestHeader(), true) . $response->getBody();
$mail = new Mailer();
$mail->setSubject("服务端操作失败");
$mail->setBody($body);
$mail->setTo("support@qiniu.com");
$mail->send();
} elseif ($code != 200) {
return false;
}
return true;
}
示例4: act_resendpwd
//.........这里部分代码省略.........
global $lang;
global $conf;
/* @var auth_basic $auth */
global $auth;
/* @var Input $INPUT */
global $INPUT;
if (!actionOK('resendpwd')) {
msg($lang['resendna'], -1);
return false;
}
$token = preg_replace('/[^a-f0-9]+/', '', $INPUT->str('pwauth'));
if ($token) {
// we're in token phase - get user info from token
$tfile = $conf['cachedir'] . '/' . $token[0] . '/' . $token . '.pwauth';
if (!@file_exists($tfile)) {
msg($lang['resendpwdbadauth'], -1);
$INPUT->remove('pwauth');
return false;
}
// token is only valid for 3 days
if (time() - filemtime($tfile) > 3 * 60 * 60 * 24) {
msg($lang['resendpwdbadauth'], -1);
$INPUT->remove('pwauth');
@unlink($tfile);
return false;
}
$user = io_readfile($tfile);
$userinfo = $auth->getUserData($user);
if (!$userinfo['mail']) {
msg($lang['resendpwdnouser'], -1);
return false;
}
if (!$conf['autopasswd']) {
// we let the user choose a password
$pass = $INPUT->str('pass');
// password given correctly?
if (!$pass) {
return false;
}
if ($pass != $INPUT->str('passchk')) {
msg($lang['regbadpass'], -1);
return false;
}
// change it
if (!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) {
msg('error modifying user data', -1);
return false;
}
} else {
// autogenerate the password and send by mail
$pass = auth_pwgen();
if (!$auth->triggerUserMod('modify', array($user, array('pass' => $pass)))) {
msg('error modifying user data', -1);
return false;
}
if (auth_sendPassword($user, $pass)) {
msg($lang['resendpwdsuccess'], 1);
} else {
msg($lang['regmailfail'], -1);
}
}
@unlink($tfile);
return true;
} else {
// we're in request phase
if (!$INPUT->post->bool('save')) {
return false;
}
if (!$INPUT->post->str('login')) {
msg($lang['resendpwdmissing'], -1);
return false;
} else {
$user = trim($auth->cleanUser($INPUT->post->str('login')));
}
$userinfo = $auth->getUserData($user);
if (!$userinfo['mail']) {
msg($lang['resendpwdnouser'], -1);
return false;
}
// generate auth token
$token = md5(auth_cookiesalt() . $user);
//secret but user based
$tfile = $conf['cachedir'] . '/' . $token[0] . '/' . $token . '.pwauth';
$url = wl('', array('do' => 'resendpwd', 'pwauth' => $token), true, '&');
io_saveFile($tfile, $user);
$text = rawLocale('pwconfirm');
$trep = array('FULLNAME' => $userinfo['name'], 'LOGIN' => $user, 'CONFIRM' => $url);
$mail = new Mailer();
$mail->to($userinfo['name'] . ' <' . $userinfo['mail'] . '>');
$mail->subject($lang['regpwmail']);
$mail->setBody($text, $trep);
if ($mail->send()) {
msg($lang['resendpwdconfirm'], 1);
} else {
msg($lang['regmailfail'], -1);
}
return true;
}
// never reached
}
示例5: send
/**
* Helper function for sending a mail
*
* @author Adrian Lang <lang@cosmocode.de>
*
* @param string $subscriber_mail The target mail address
* @param string $subject The lang id of the mail subject (without the
* prefix “mail_”)
* @param string $context The context of this mail, eg. page or namespace id
* @param string $template The name of the mail template
* @param array $trep Predefined parameters used to parse the
* template (in text format)
* @param array $hrep Predefined parameters used to parse the
* template (in HTML format), null to default to $trep
* @param array $headers Additional mail headers in the form 'name' => 'value'
* @return bool
*/
protected function send($subscriber_mail, $subject, $context, $template, $trep, $hrep = null, $headers = array())
{
global $lang;
global $conf;
$text = rawLocale($template);
$subject = $lang['mail_' . $subject] . ' ' . $context;
$mail = new Mailer();
$mail->bcc($subscriber_mail);
$mail->subject($subject);
$mail->setBody($text, $trep, $hrep);
if (in_array($template, array('subscr_list', 'subscr_digest'))) {
$mail->from($conf['mailfromnobody']);
}
if (isset($trep['SUBSCRIBE'])) {
$mail->setHeader('List-Unsubscribe', '<' . $trep['SUBSCRIBE'] . '>', false);
}
foreach ($headers as $header => $value) {
$mail->setHeader($header, $value);
}
return $mail->send();
}
示例6: notify
/**
* Sends a notify mail on page change or registration
*
* @param string $id The changed page
* @param string $who Who to notify (admin|subscribers|register)
* @param int|string $rev Old page revision
* @param string $summary What changed
* @param boolean $minor Is this a minor edit?
* @param array $replace Additional string substitutions, @KEY@ to be replaced by value
*
* @return bool
* @author Andreas Gohr <andi@splitbrain.org>
*/
function notify($id, $who, $rev = '', $summary = '', $minor = false, $replace = array())
{
global $lang;
global $conf;
global $INFO;
global $DIFF_INLINESTYLES;
// decide if there is something to do, eg. whom to mail
if ($who == 'admin') {
if (empty($conf['notify'])) {
return false;
}
//notify enabled?
$text = rawLocale('mailtext');
$to = $conf['notify'];
$bcc = '';
} elseif ($who == 'subscribers') {
if (!$conf['subscribers']) {
return false;
}
//subscribers enabled?
if ($conf['useacl'] && $_SERVER['REMOTE_USER'] && $minor) {
return false;
}
//skip minors
$data = array('id' => $id, 'addresslist' => '', 'self' => false);
trigger_event('COMMON_NOTIFY_ADDRESSLIST', $data, 'subscription_addresslist');
$bcc = $data['addresslist'];
if (empty($bcc)) {
return false;
}
$to = '';
$text = rawLocale('subscr_single');
} elseif ($who == 'register') {
if (empty($conf['registernotify'])) {
return false;
}
$text = rawLocale('registermail');
$to = $conf['registernotify'];
$bcc = '';
} else {
return false;
//just to be safe
}
// prepare replacements (keys not set in hrep will be taken from trep)
$trep = array('NEWPAGE' => wl($id, '', true, '&'), 'PAGE' => $id, 'SUMMARY' => $summary);
$trep = array_merge($trep, $replace);
$hrep = array();
// prepare content
if ($who == 'register') {
$subject = $lang['mail_new_user'] . ' ' . $summary;
} elseif ($rev) {
$subject = $lang['mail_changed'] . ' ' . $id;
$trep['OLDPAGE'] = wl($id, "rev={$rev}", true, '&');
$df = new Diff(explode("\n", rawWiki($id, $rev)), explode("\n", rawWiki($id)));
$dformat = new UnifiedDiffFormatter();
$tdiff = $dformat->format($df);
$DIFF_INLINESTYLES = true;
$dformat = new InlineDiffFormatter();
$hdiff = $dformat->format($df);
$hdiff = '<table>' . $hdiff . '</table>';
$DIFF_INLINESTYLES = false;
} else {
$subject = $lang['mail_newpage'] . ' ' . $id;
$trep['OLDPAGE'] = '---';
$tdiff = rawWiki($id);
$hdiff = nl2br(hsc($tdiff));
}
$trep['DIFF'] = $tdiff;
$hrep['DIFF'] = $hdiff;
// send mail
$mail = new Mailer();
$mail->to($to);
$mail->bcc($bcc);
$mail->subject($subject);
$mail->setBody($text, $trep, $hrep);
if ($who == 'subscribers') {
$mail->setHeader('List-Unsubscribe', '<' . wl($id, array('do' => 'subscribe'), true, '&') . '>', false);
}
return $mail->send();
}
示例7: subscription_send
/**
* Helper function for sending a mail
*
* @param string $subscriber_mail The target mail address
* @param array $replaces Predefined parameters used to parse the
* template
* @param string $subject The lang id of the mail subject (without the
* prefix “mail_”)
* @param string $id The page or namespace id
* @param string $template The name of the mail template
*
* @author Adrian Lang <lang@cosmocode.de>
*/
function subscription_send($subscriber_mail, $replaces, $subject, $id, $template)
{
global $conf;
global $lang;
$text = rawLocale($template);
$trep = array_merge($replaces, array('PAGE' => $id));
$subject = $lang['mail_' . $subject] . ' ' . $id;
$mail = new Mailer();
$mail->bcc($subscriber_mail);
$mail->subject($subject);
$mail->setBody($text, $trep);
$mail->setHeader('List-Unsubscribe', '<' . wl($id, array('do' => 'subscribe'), true, '&') . '>', false);
return $mail->send();
}
示例8: send_approve_mail
/**
* Send approve-mail to editor of the now approved revision
*
* @return bool false if there was an error passing the mail to the MTA
*/
public function send_approve_mail()
{
global $ID;
global $REV;
/** @var DokuWiki_Auth_Plugin $auth */
global $auth;
$data = pageinfo();
// get mail receiver
if (!$REV) {
$rev = $data['lastmod'];
} else {
$rev = $REV;
}
$changelog = new PageChangelog($ID);
$revinfo = $changelog->getRevisionInfo($rev);
$userinfo = $auth->getUserData($revinfo['user']);
$receiver = $userinfo['mail'];
// get mail sender
$ReplyTo = $data['userinfo']['mail'];
if ($ReplyTo == $receiver) {
return true;
}
// get mail subject
$subject = $this->getLang('apr_mail_app_subject');
// get mail text
$body = $this->create_mail_body('approve');
$mail = new Mailer();
$mail->to($receiver);
$mail->subject($subject);
$mail->setBody($body);
$mail->setHeader("Reply-To", $ReplyTo);
$returnStatus = $mail->send();
return $returnStatus;
}
示例9: media_notify
/**
* Send a notify mail on uploads
*
* @author Andreas Gohr <andi@splitbrain.org>
* @fixme this should embed thumbnails of images in HTML version
*/
function media_notify($id, $file, $mime, $old_rev = false)
{
global $lang;
global $conf;
global $INFO;
if (empty($conf['notify'])) {
return;
}
//notify enabled?
$text = rawLocale('uploadmail');
$trep = array('MIME' => $mime, 'MEDIA' => ml($id, '', true, '&', true), 'SIZE' => filesize_h(filesize($file)));
if ($old_rev && $conf['mediarevisions']) {
$trep['OLD'] = ml($id, "rev={$old_rev}", true, '&', true);
} else {
$trep['OLD'] = '---';
}
$mail = new Mailer();
$mail->to($conf['notify']);
$mail->subject($lang['mail_upload'] . ' ' . $id);
$mail->setBody($text, $trep);
return $mail->send();
}
示例10: foreach
$smarty->assign("section_content", 'mail_add.tpl');
foreach ($_SESSION['supported_languages'] as $key) {
if ($key['lang_code'] == _CLIENT_LANGUAGE_) {
$lng = $key['name'];
}
}
$smarty->assign('language', $lng);
}
if ($_POST['action'] == 'add_template') {
$id = $builder->addTemplate($_POST, $_POST['l10n']);
header("location: {$current_module}?act=edit&id={$id}");
}
if ($_GET['act'] == 'testparse') {
$builder->setTemplate(1, _CLIENT_LANGUAGE_);
$headers = ['From' => 'raph@mc4pc.com', 'Reply-To' => 'admin@somtesite.com', 'Content-Type' => 'text/html', 'Mime-Version' => "1.0"];
$receiver = 'raph@mc4pc.com';
$receivers = ['raph@mc4pc.com', 'rplansangan@gmail.com'];
$bcc = ['bcc1@bcc.com', 'thisisacompletelyinvalidemail', 'bcc2@bcc.com', 'bcc3@bcc.com', 'bcc4@bcc.com', 'bcc5@bcc.com'];
$cc = ['cc1@cc.com', 'cc2@cc.com', 'thisisacompletelyinvalidemail', 'cc3@cc.com', 'cc4@cc.com', 'cc5@cc.com'];
$mailer->setBody($builder->getTemplate())->setHeaders($headers)->setSubject($builder->getSubject())->setBatchRecipient($receivers)->setRecipient($receiver)->setBcc(['rplansangan@gmail.com'])->setPriority(2)->setTimezone('Etc/GMT+0')->replace('name', 'FirstName LastName')->replace('email_address', $receiver)->attachFile('/home/ab60195/public_html/rocky/images/add_photos.png')->send();
$mailer->dumpAll();
}
#Breadcrumb
$breadcrumb[0]["title"] = "Home";
$breadcrumb[0]["url"] = "home.php?";
$breadcrumb[1]["title"] = "E-mails";
$breadcrumb[1]["url"] = "mails.php?";
$breadcrumb[2]["title"] = $builder->siteLabels('action');
$breadcrumb[2]["url"] = $builder->siteLabels('action_key');
$smarty->assign("breadcrumb", $breadcrumb);
$smarty->display(_TPL_BACKEND_DIR_ . "layout.tpl");
示例11: Mailer
/**
* Sends a notify mail on new comment
*
* @param array $comment data array of the new comment
* @param array $subscribers data of the subscribers
*
* @author Andreas Gohr <andi@splitbrain.org>
* @author Esther Brunner <wikidesign@gmail.com>
*/
function _notify($comment, &$subscribers)
{
global $conf;
global $ID;
$notify_text = io_readfile($this->localfn('subscribermail'));
$confirm_text = io_readfile($this->localfn('confirmsubscribe'));
$subject_notify = '[' . $conf['title'] . '] ' . $this->getLang('mail_newcomment');
$subject_subscribe = '[' . $conf['title'] . '] ' . $this->getLang('subscribe');
$mailer = new Mailer();
if (empty($_SERVER['REMOTE_USER'])) {
$mailer->from($conf['mailfromnobody']);
}
$replace = array('PAGE' => $ID, 'TITLE' => $conf['title'], 'DATE' => dformat($comment['date']['created'], $conf['dformat']), 'NAME' => $comment['user']['name'], 'TEXT' => $comment['raw'], 'COMMENTURL' => wl($ID, '', true) . '#comment_' . $comment['cid'], 'UNSUBSCRIBE' => wl($ID, 'do=subscribe', true, '&'), 'DOKUWIKIURL' => DOKU_URL);
$confirm_replace = array('PAGE' => $ID, 'TITLE' => $conf['title'], 'DOKUWIKIURL' => DOKU_URL);
$mailer->subject($subject_notify);
$mailer->setBody($notify_text, $replace);
// send mail to notify address
if ($conf['notify']) {
$mailer->bcc($conf['notify']);
$mailer->send();
}
// notify page subscribers
if (actionOK('subscribe')) {
$data = array('id' => $ID, 'addresslist' => '', 'self' => false);
if (class_exists('Subscription')) {
/* Introduced in DokuWiki 2013-05-10 */
trigger_event('COMMON_NOTIFY_ADDRESSLIST', $data, array(new Subscription(), 'notifyaddresses'));
} else {
/* Old, deprecated default handler */
trigger_event('COMMON_NOTIFY_ADDRESSLIST', $data, 'subscription_addresslist');
}
$to = $data['addresslist'];
if (!empty($to)) {
$mailer->bcc($to);
$mailer->send();
}
}
// notify comment subscribers
if (!empty($subscribers)) {
foreach ($subscribers as $mail => $data) {
$mailer->bcc($mail);
if ($data['active']) {
$replace['UNSUBSCRIBE'] = wl($ID, 'do=discussion_unsubscribe&hash=' . $data['hash'], true, '&');
$mailer->subject($subject_notify);
$mailer->setBody($notify_text, $replace);
$mailer->send();
} elseif (!$data['active'] && !$data['confirmsent']) {
$confirm_replace['SUBSCRIBE'] = wl($ID, 'do=discussion_confirmsubscribe&hash=' . $data['hash'], true, '&');
$mailer->subject($subject_subscribe);
$mailer->setBody($confirm_text, $confirm_replace);
$mailer->send();
$subscribers[$mail]['confirmsent'] = true;
}
}
}
}
示例12: _notify
/**
* Sends a notify mail on new comment
*
* @param array $comment data array of the new comment
* @param array $subscribers data of the subscribers
*
* @author Andreas Gohr <andi@splitbrain.org>
* @author Esther Brunner <wikidesign@gmail.com>
*/
protected function _notify($comment, &$subscribers)
{
global $conf;
global $ID;
$notify_text = io_readfile($this->localfn('subscribermail'));
$confirm_text = io_readfile($this->localfn('confirmsubscribe'));
$subject_notify = '[' . $conf['title'] . '] ' . $this->getLang('mail_newcomment');
$subject_subscribe = '[' . $conf['title'] . '] ' . $this->getLang('subscribe');
$mailer = new Mailer();
if (empty($_SERVER['REMOTE_USER'])) {
$mailer->from($conf['mailfromnobody']);
}
$replace = array('PAGE' => $ID, 'TITLE' => $conf['title'], 'DATE' => dformat($comment['date']['created'], $conf['dformat']), 'NAME' => $comment['user']['name'], 'TEXT' => $comment['raw'], 'COMMENTURL' => wl($ID, '', true) . '#comment_' . $comment['cid'], 'UNSUBSCRIBE' => wl($ID, 'do=subscribe', true, '&'), 'DOKUWIKIURL' => DOKU_URL);
$confirm_replace = array('PAGE' => $ID, 'TITLE' => $conf['title'], 'DOKUWIKIURL' => DOKU_URL);
$mailer->subject($subject_notify);
$mailer->setBody($notify_text, $replace);
// send mail to notify address
if ($conf['notify']) {
$mailer->bcc($conf['notify']);
$mailer->send();
}
// send email to moderators
if ($this->getConf('moderatorsnotify')) {
$mods = trim($this->getConf('moderatorgroups'));
if (!empty($mods)) {
global $auth;
// create a clean mods list
$mods = explode(',', $mods);
$mods = array_map('trim', $mods);
$mods = array_unique($mods);
$mods = array_filter($mods);
// search for moderators users
foreach ($mods as $mod) {
if (!$auth->isCaseSensitive()) {
$mod = utf8_strtolower($mod);
}
// create a clean mailing list
$dests = array();
if ($mod[0] == '@') {
foreach ($auth->retrieveUsers(0, 0, array('grps' => $auth->cleanGroup(substr($mod, 1)))) as $user) {
if (!empty($user['mail'])) {
array_push($dests, $user['mail']);
}
}
} else {
$userdata = $auth->getUserData($auth->cleanUser($mod));
if (!empty($userdata['mail'])) {
array_push($dests, $userdata['mail']);
}
}
$dests = array_unique($dests);
// notify the users
$mailer->bcc(implode(',', $dests));
$mailer->send();
}
}
}
// notify page subscribers
if (actionOK('subscribe')) {
$data = array('id' => $ID, 'addresslist' => '', 'self' => false);
if (class_exists('Subscription')) {
/* Introduced in DokuWiki 2013-05-10 */
trigger_event('COMMON_NOTIFY_ADDRESSLIST', $data, array(new Subscription(), 'notifyaddresses'));
} else {
/* Old, deprecated default handler */
trigger_event('COMMON_NOTIFY_ADDRESSLIST', $data, 'subscription_addresslist');
}
$to = $data['addresslist'];
if (!empty($to)) {
$mailer->bcc($to);
$mailer->send();
}
}
// notify comment subscribers
if (!empty($subscribers)) {
foreach ($subscribers as $mail => $data) {
$mailer->bcc($mail);
if ($data['active']) {
$replace['UNSUBSCRIBE'] = wl($ID, 'do=discussion_unsubscribe&hash=' . $data['hash'], true, '&');
$mailer->subject($subject_notify);
$mailer->setBody($notify_text, $replace);
$mailer->send();
} elseif (!$data['active'] && !$data['confirmsent']) {
$confirm_replace['SUBSCRIBE'] = wl($ID, 'do=discussion_confirmsubscribe&hash=' . $data['hash'], true, '&');
$mailer->subject($subject_subscribe);
$mailer->setBody($confirm_text, $confirm_replace);
$mailer->send();
$subscribers[$mail]['confirmsent'] = true;
}
}
}
//.........这里部分代码省略.........
示例13: subscription_send
/**
* Helper function for sending a mail
*
* @author Adrian Lang <lang@cosmocode.de>
*
* @param string $subscriber_mail The target mail address
* @param array $replaces Predefined parameters used to parse the
* template
* @param string $subject The lang id of the mail subject (without the
* prefix “mail_”)
* @param string $id The page or namespace id
* @param string $template The name of the mail template
* @return bool
*/
function subscription_send($subscriber_mail, $replaces, $subject, $id, $template)
{
global $lang;
global $conf;
$text = rawLocale($template);
$trep = array_merge($replaces, array('PAGE' => $id));
$hrep = $trep;
$hrep['DIFF'] = nl2br(htmlspecialchars($hrep['DIFF']));
$subject = $lang['mail_' . $subject] . ' ' . $id;
$mail = new Mailer();
$mail->bcc($subscriber_mail);
$mail->subject($subject);
$mail->setBody($text, $trep, $hrep);
$mail->from($conf['mailfromnobody']);
$mail->setHeader('List-Unsubscribe', '<' . wl($id, array('do' => 'subscribe'), true, '&') . '>', false);
return $mail->send();
}
示例14: send_mail
private function send_mail($to, $subject, $content, $from, $cc, $bcc)
{
// send a mail
$mail = new Mailer();
$mail->to($to);
$mail->cc($cc);
$mail->bcc($bcc);
$mail->from($from);
$mail->subject($subject);
$mail->setBody($content);
$ok = $mail->send();
return $ok;
}
示例15: process
public function process($params)
{
if (!isset($params[0])) {
throw new MException("Mod id not specified.");
}
$modId = $params[0];
$sth = $this->getDB()->prepare("SELECT id, name, version, versionCode, available, devname, devemail\r\n\t\t\t\t\t\tFROM mods\r\n\t\t\t\t\t\tWHERE id = :id");
$sth->bindValue(":id", $modId, PDO::PARAM_INT);
$sth->execute();
$modExists = $sth->fetch(PDO::FETCH_ASSOC);
if (!empty($modExists)) {
// this mod is in the repo
if ($modExists["available"] == 0) {
throw new MException("This mod is not made available yet.");
} else {
// mod is already available
$newVersion = $modExists["version"] + 1;
$fileLocation = sprintf('%1$s../downloads/mods/%2$s/%3$d/%2$s.mod.dll', MBASE_PATH, $modExists["name"], $newVersion);
if (!file_exists($fileLocation)) {
throw new MException(sprintf("Mod %s has no version %d in the repo yet.", $modExists["name"], $modExists["version"]));
} else {
// file exists on server, nothing to stop us from activating now :)
// check the update queue whether new information has been submitted
$sth = $this->getDB()->prepare("SELECT submitted, newversionCode\r\n\t\t\t\t\t\t\t\t\tFROM updatequeue\r\n\t\t\t\t\t\t\t\t\tWHERE modid = :id");
$sth->bindValue(":id", $modExists["id"], PDO::PARAM_INT);
$sth->execute();
$newVersionInfo = $sth->fetch(PDO::FETCH_ASSOC);
$lastUpdate = time();
// use current time if there's no update
$versionCode = $modExists["versionCode"];
// use old version code if new code is not submitted
if (!empty($newVersionInfo)) {
$lastUpdate = $newVersionInfo["submitted"];
$versionCode = $newVersionInfo["newversionCode"];
// and remove update from queue
$sth = $this->getDB()->prepare("DELETE FROM updatequeue\r\n\t\t\t\t\t\t\t\t\t\tWHERE modid = :id");
$sth->bindValue(":id", $modExists["id"], PDO::PARAM_INT);
if ($sth->execute()) {
echo "Mod update request removed from queue.\n";
} else {
echo "Mod update was not in queue.\n";
}
}
// now update the mod in the database so the update is public
$sth = $this->getDB()->prepare("UPDATE mods\r\n\t\t\t\t\t\t\t\t\tSET version = :newversion, versionCode = :newversionCode, lastupdate = :lastupdate\r\n\t\t\t\t\t\t\t\t\tWHERE id = :id");
$sth->bindValue(":newversion", $newVersion, PDO::PARAM_INT);
$sth->bindValue(":newversionCode", $versionCode, PDO::PARAM_STR);
$sth->bindValue(":lastupdate", $lastUpdate, PDO::PARAM_INT);
$sth->bindValue(":id", $modExists["id"], PDO::PARAM_INT);
if ($sth->execute()) {
// send mail to developer to notify him of the update
$m = new Mailer(new MailAddress("mods@scrollsguide.com", sprintf("%s Mod Repo", REPO_NAME)));
$m->addRecipient(new MailAddress($modExists["devemail"], $modExists["devname"]));
$m->setSubject("Your mod has been updated.");
$tpl = $m->getMustache()->loadTemplate("mod_updated.mustache");
$m->setBody($tpl->render(array("REPONAME" => REPO_NAME, "REPOURL" => REPO_URL, "DEVNAME" => $modExists["devname"], "MODNAME" => $modExists["name"], "VERSION" => $newVersion, "VERSIONCODE" => $versionCode)));
$m->send();
echo sprintf("Mod %s is now updated to version %d. Wait for the cache to update.\n", $modExists["name"], $newVersion);
} else {
throw new MException("Mot not made available, database error.");
}
}
}
} else {
// mod is not in the submission queue
throw new MException(sprintf("Mod %d does not exist in the submission queue.", $modId));
}
}