Skip to content
Snippets Groups Projects
Select Git revision
  • d8fe6fbb400e80e51655b78883925efe6b3af937
  • master default protected
2 results

hook.php

Blame
  • mail.php 2.71 KiB
    <?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|int $html
    	 * @param string $altbody
    	 * @param string $ccaddress
    	 * @param string $ccname
    	 * @param string $bcc
    	 * @throws Exception
    	 */
    	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' );
    		$SMTPPORT = OC_Config::getValue( 'mail_smtpport', 25 );
    		$SMTPAUTH = OC_Config::getValue( 'mail_smtpauth', false );
    		$SMTPUSERNAME = OC_Config::getValue( 'mail_smtpname', '' );
    		$SMTPPASSWORD = OC_Config::getValue( 'mail_smtppassword', '' );
    
    
    		$mailo = new PHPMailer(true);
    		if($SMTPMODE=='sendmail') {
    			$mailo->IsSendmail();
    		}elseif($SMTPMODE=='smtp') {
    			$mailo->IsSMTP();
    		}elseif($SMTPMODE=='qmail') {
    			$mailo->IsQmail();
    		}else{
    			$mailo->IsMail();
    		}
    
    
    		$mailo->Host = $SMTPHOST;
    		$mailo->Port = $SMTPPORT;
    		$mailo->SMTPAuth = $SMTPAUTH;
    		$mailo->Username = $SMTPUSERNAME;
    		$mailo->Password = $SMTPPASSWORD;
    
    		$mailo->From =$fromaddress;
    		$mailo->FromName = $fromname;;
    		$mailo->Sender =$fromaddress;
    		$a=explode(' ', $toaddress);
    		try {
    			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', 'Mail from '.$fromname.' ('.$fromaddress.')'.' to: '.$toname.'('.$toaddress.')'.' subject: '.$subject, OC_Log::DEBUG);
    		} catch (Exception $exception) {
    			OC_Log::write('mail', $exception->getMessage(), OC_Log::ERROR);
    			throw($exception);
    		}
    	}
    
    	/**
    	 * return the footer for a mail
    	 *
    	 */
    	public static function getfooter() {
    
    		$txt="\n--\n";
    		$txt.="ownCloud\n";
    		$txt.="Your Cloud, Your Data, Your Way!\n";
    		return($txt);
    
    	}
    }