new OC_Mail class to handle all mail sending. The benefit is that is way mor flexible than the standard mail command. can be configured to use a remote smtp relay for example. also port the lostpassword code
This commit is contained in:
parent
3aeea0c196
commit
2fbc92bd4b
|
@ -19,6 +19,11 @@ $CONFIG = array(
|
||||||
"knowledgebaseurl" => "",
|
"knowledgebaseurl" => "",
|
||||||
"appstoreenabled" => true,
|
"appstoreenabled" => true,
|
||||||
"appstoreurl" => "",
|
"appstoreurl" => "",
|
||||||
|
"mail_smtpmode" => "sendmail",
|
||||||
|
"mail_smtphost" => "127.0.0.1",
|
||||||
|
"mail_smtpauth" => "false",
|
||||||
|
"mail_smtpname" => "",
|
||||||
|
"mail_smtppassword" => "",
|
||||||
// "datadirectory" => ""
|
// "datadirectory" => ""
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -22,7 +22,10 @@ if (isset($_POST['user'])) {
|
||||||
$msg = $tmpl->fetchPage();
|
$msg = $tmpl->fetchPage();
|
||||||
$l = OC_L10N::get('core');
|
$l = OC_L10N::get('core');
|
||||||
$from = 'lostpassword-noreply@' . $_SERVER['HTTP_HOST'];
|
$from = 'lostpassword-noreply@' . $_SERVER['HTTP_HOST'];
|
||||||
mail($email, $l->t('Owncloud password reset'), $msg, 'From:' . $from);
|
$r=mail($email, $l->t('Owncloud password reset'), $msg, 'From:' . $from);
|
||||||
|
//if($r==false) echo('error'); else echo('works!!!!!!!');
|
||||||
|
OC_MAIL::send($email,$_POST['user'],$l->t('Owncloud password reset'),$msg,$from,'ownCloud');
|
||||||
|
|
||||||
}
|
}
|
||||||
OC_Template::printGuestPage('core/lostpassword', 'lostpassword', array('error' => false, 'requested' => true));
|
OC_Template::printGuestPage('core/lostpassword', 'lostpassword', array('error' => false, 'requested' => true));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -0,0 +1,116 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2012 Frank Karlitschek <frank@owncloud.org>
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or
|
||||||
|
* later.
|
||||||
|
* See the COPYING-README file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* OC_Mail
|
||||||
|
*
|
||||||
|
* A class to handle mail sending.
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once('class.phpmailer.php');
|
||||||
|
|
||||||
|
class OC_Mail {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* send an email
|
||||||
|
*
|
||||||
|
* @param string $toaddress
|
||||||
|
* @param string $toname
|
||||||
|
* @param string $subject
|
||||||
|
* @param string $mailtext
|
||||||
|
* @param string $fromaddress
|
||||||
|
* @param string $fromname
|
||||||
|
* @param bool $html
|
||||||
|
*/
|
||||||
|
public static function send($toaddress,$toname,$subject,$mailtext,$fromaddress,$fromname,$html=0,$altbody='',$ccaddress='',$ccname='',$bcc='') {
|
||||||
|
|
||||||
|
$SMTPMODE = OC_Config::getValue( 'mail_smtpmode', 'sendmail' );
|
||||||
|
$SMTPHOST = OC_Config::getValue( 'mail_smtphost', '127.0.0.1' );
|
||||||
|
$SMTPAUTH = OC_Config::getValue( 'mail_smtpauth', 'false' );
|
||||||
|
$SMTPUSERNAME = OC_Config::getValue( 'mail_smtpname', '' );
|
||||||
|
$SMTPPASSWORD = OC_Config::getValue( 'mail_smtppassword', '' );
|
||||||
|
|
||||||
|
|
||||||
|
$mailo = new PHPMailer();
|
||||||
|
if($SMTPMODE=='sendmail') {
|
||||||
|
$mailo->IsSendmail();
|
||||||
|
}elseif($SMTPMODE=='smtp'){
|
||||||
|
$mailo->IsSMTP();
|
||||||
|
}elseif($SMTPMODE=='qmail'){
|
||||||
|
$mailo->IsQmail();
|
||||||
|
}else{
|
||||||
|
$mailo->IsMail();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$mailo->Host = $SMTPHOST;
|
||||||
|
$mailo->SMTPAuth = $SMTPAUTH;
|
||||||
|
$mailo->Username = $SMTPUSERNAME;
|
||||||
|
$mailo->Password = $SMTPPASSWORD;
|
||||||
|
|
||||||
|
$mailo->From =$fromaddress;
|
||||||
|
$mailo->FromName = $fromname;;
|
||||||
|
$a=explode(' ',$toaddress);
|
||||||
|
foreach($a as $ad) {
|
||||||
|
$mailo->AddAddress($ad,$toname);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($ccaddress<>'') $mailo->AddCC($ccaddress,$ccname);
|
||||||
|
if($bcc<>'') $mailo->AddBCC($bcc);
|
||||||
|
|
||||||
|
$mailo->AddReplyTo($fromaddress, $fromname);
|
||||||
|
|
||||||
|
$mailo->WordWrap = 50;
|
||||||
|
if($html==1) $mailo->IsHTML(true); else $mailo->IsHTML(false);
|
||||||
|
|
||||||
|
$mailo->Subject = $subject;
|
||||||
|
if($altbody=='') {
|
||||||
|
$mailo->Body = $mailtext.OC_MAIL::getfooter();
|
||||||
|
$mailo->AltBody = '';
|
||||||
|
}else{
|
||||||
|
$mailo->Body = $mailtext;
|
||||||
|
$mailo->AltBody = $altbody;
|
||||||
|
}
|
||||||
|
$mailo->CharSet = 'UTF-8';
|
||||||
|
|
||||||
|
$mailo->Send();
|
||||||
|
unset($mailo);
|
||||||
|
|
||||||
|
OC_Log::write('Mail from '.$fromname.' ('.$fromaddress.')'.' to: '.$toname.'('.$toaddress.')'.' subject: '.$subject,'mail',OC_Log::DEBUG);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sending a mail based on a template
|
||||||
|
*
|
||||||
|
* @param texttemplate $texttemplate
|
||||||
|
* @param htmltemplate $htmltemplate
|
||||||
|
* @param data $data
|
||||||
|
* @param To $toaddress
|
||||||
|
* @param ToName $toname
|
||||||
|
* @param Subject $subject
|
||||||
|
* @param From $fromaddress
|
||||||
|
* @param FromName $fromname
|
||||||
|
* @param ccaddress $ccaddress
|
||||||
|
* @param ccname $ccname
|
||||||
|
* @param bcc $bcc
|
||||||
|
*/
|
||||||
|
public static function getfooter() {
|
||||||
|
|
||||||
|
$txt="\n--\n";
|
||||||
|
$txt.="ownCloud\n";
|
||||||
|
$txt.="Your Cloud, Your Data, Your Way!\n";
|
||||||
|
return($txt);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue