<?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);

	}



}
