Difference between revisions of "Extension:FormMailer"
(tested and working) |
|||
Line 1: | Line 1: | ||
<?php | <?php | ||
− | # Extension:FORMMAILER | + | # Extension:FORMMAILER |
# - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html) | # - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html) | ||
# - Author: [http://www.organicdesign.co.nz/nad User:Nad] | # - Author: [http://www.organicdesign.co.nz/nad User:Nad] | ||
Line 8: | Line 8: | ||
if (!defined('MEDIAWIKI')) die('Not an entry point.'); | if (!defined('MEDIAWIKI')) die('Not an entry point.'); | ||
− | define('FORMMAILER_VERSION',' | + | define('FORMMAILER_VERSION','1.0.0, 2007-06-17'); |
# A list of email addresses which should recieve posted forms | # A list of email addresses which should recieve posted forms | ||
Line 17: | Line 17: | ||
# Name of sender of forms | # Name of sender of forms | ||
− | $wgFormMailerFrom = | + | $wgFormMailerFrom = 'wiki@'.ereg_replace('^.+www.','',$wgServer); |
# Don't post the following posted items | # Don't post the following posted items | ||
Line 41: | Line 41: | ||
function wfSetupFormMailer() { | function wfSetupFormMailer() { | ||
global $wgFormMailerVarName,$wgFormMailerRecipients,$wgFormMailerMessage,$wgFormMailerSubject, | global $wgFormMailerVarName,$wgFormMailerRecipients,$wgFormMailerMessage,$wgFormMailerSubject, | ||
− | $wgFormMailerFrom,$wgFormMailerDontSend,$wgSimpleFormsRequestPrefix,$wgSiteNotice; | + | $wgFormMailerFrom,$wgFormMailerDontSend,$wgSimpleFormsRequestPrefix,$wgSiteNotice,$wgSitename; |
if (isset($_REQUEST[$wgFormMailerVarName])) { | if (isset($_REQUEST[$wgFormMailerVarName])) { | ||
# Construct the message | # Construct the message | ||
− | $body = "Form posted from ".$_SERVER['REMOTE_ADDR']."\n\n"; | + | $body = "Form posted from ".$_SERVER['REMOTE_ADDR']."\n\n"; |
$message = $wgFormMailerMessage; | $message = $wgFormMailerMessage; | ||
$subject = $wgFormMailerSubject; | $subject = $wgFormMailerSubject; | ||
Line 54: | Line 54: | ||
elseif ($k == 'formmailer_subject') $subject = $v; | elseif ($k == 'formmailer_subject') $subject = $v; | ||
else { | else { | ||
− | if ($wgSimpleFormsRequestPrefix) $k = ereg_replace("^$wgSimpleFormsRequestPrefix",'',$k | + | if ($wgSimpleFormsRequestPrefix) $k = ereg_replace("^$wgSimpleFormsRequestPrefix",'',$k$ |
$body .= "$k: $v\n\n"; | $body .= "$k: $v\n\n"; | ||
} | } | ||
Line 60: | Line 60: | ||
# Send to recipients using the MediaWiki mailer | # Send to recipients using the MediaWiki mailer | ||
− | $err = ''; | + | $err = ''; |
+ | $user = new User(); | ||
+ | $from = "\"$wgSitename\"<$wgFormMailerFrom>"; | ||
foreach ($wgFormMailerRecipients as $recipient) if (User::isValidEmailAddr($recipient)) { | foreach ($wgFormMailerRecipients as $recipient) if (User::isValidEmailAddr($recipient)) { | ||
− | $ | + | $user->setName($recipient); |
+ | $user->setEmail($recipient); | ||
+ | if ($user->sendMail($subject,$body,$from) !== true) $err = 'Failed to send!'; | ||
} | } | ||
$wgSiteNotice .= "<div class='usermessage'>".($err ? $err : $message)."</div>"; | $wgSiteNotice .= "<div class='usermessage'>".($err ? $err : $message)."</div>"; | ||
} | } | ||
} | } |
Revision as of 08:13, 17 June 2007
<?php
- Extension:FORMMAILER
- - Licenced under LGPL (http://www.gnu.org/copyleft/lesser.html)
- - Author: User:Nad
- - Started: 2007-06-17
- - See http://www.mediawiki.org/wiki/Extension:FormMailerfor installation and usage details
if (!defined('MEDIAWIKI')) die('Not an entry point.');
define('FORMMAILER_VERSION','1.0.0, 2007-06-17');
- A list of email addresses which should recieve posted forms
$wgFormMailerRecipients = array();
- If a variable of this name is posted, the data is assumed to be for mailing
$wgFormMailerVarName = "formmailer";
- Name of sender of forms
$wgFormMailerFrom = 'wiki@'.ereg_replace('^.+www.',,$wgServer);
- Don't post the following posted items
$wgFormMailerDontSend = array('title','action');
- Message to display after sending the form (can also be set in the form by posting formmailer_message
$wgFormMailerMessage = "Thanks, your enquiry has been submitted!";
- Message to display after sending the form (can also be set in the form by posting formmailer_subject
$wgFormMailerSubject = "Form submitted from $wgSitename";
$wgExtensionFunctions[] = 'wfSetupFormMailer';
$wgExtensionCredits['other'][] = array( 'name' => 'FormMailer', 'author' => 'User:Nad', 'description' => 'Formats and sends posted form fields to email recipients', 'url' => 'http://www.mediawiki.org/wiki/Extension:FormMailer', 'version' => FORMMAILER_VERSION );
function wfSetupFormMailer() { global $wgFormMailerVarName,$wgFormMailerRecipients,$wgFormMailerMessage,$wgFormMailerSubject, $wgFormMailerFrom,$wgFormMailerDontSend,$wgSimpleFormsRequestPrefix,$wgSiteNotice,$wgSitename;
if (isset($_REQUEST[$wgFormMailerVarName])) {
# Construct the message $body = "Form posted from ".$_SERVER['REMOTE_ADDR']."\n\n"; $message = $wgFormMailerMessage; $subject = $wgFormMailerSubject; $wgFormMailerDontSend[] = $wgFormMailerVarName; foreach (array_merge($_GET,$_POST) as $k => $v) if (!in_array($k,$wgFormMailerDontSend)) { if ($k == 'formmailer_message') $message = $v; elseif ($k == 'formmailer_subject') $subject = $v; else { if ($wgSimpleFormsRequestPrefix) $k = ereg_replace("^$wgSimpleFormsRequestPrefix",,$k$ $body .= "$k: $v\n\n"; } }
# Send to recipients using the MediaWiki mailer $err = ; $user = new User(); $from = "\"$wgSitename\"<$wgFormMailerFrom>"; foreach ($wgFormMailerRecipients as $recipient) if (User::isValidEmailAddr($recipient)) { $user->setName($recipient); $user->setEmail($recipient); if ($user->sendMail($subject,$body,$from) !== true) $err = 'Failed to send!'; }
$wgSiteNotice .= "
";
} }