помощ с един скрипт

teroristd

Registered
Значи това е скрипт за пращане на много съобщения до потребители но проблема е че изпраща само текст а аз искам примерно да сложа линк или картинка в хтмл формат , както някои сайтове ако се регистрирате ви пращат хтмл страница. Надявам се да сте ме разбрали. Най долу на скрипта е пращането но го давам целия че не знам от къде идва проблема.

Код:
							<?php 
ob_start(); 
set_time_limit(0); 

/* 
 * @@Author: DarkKiss <darkkiss [at] dreaming-bg [dot] com> 
 * This script offers no support. 
 */ 

class massMail 
{ 
        // ========================================= 
        // Метода, по който ще извличаме e-mail адресите. 
        // ========================================= 
        // 1 => От текстов файл. 
        // 2 => От MySQL. 
        // ========================================= 
        private $source = 2; 
        
        private $sourceFile = 'emails.txt'; // Файла, от който ще черим информацията. Задължителен е само ако $source = 1. 
        
        // ========================================= 
        // Настройки за достъп до MySQL. 
        // ========================================= 
        // Задължителни са само ако $source = 2. 
        // ========================================= 
        private 
                $mysql_server = 'localhost', // Сървъра, на който се намира MySQL сървъра ни. 
                $mysql_username = 'хххххххххх', // Потребителското име, което ще използваме за MySQL. 
                $mysql_password = 'ххххххххх', // Паролата. която ще използваме за MySQL. 
                $mysql_database = 'хххххххххххххх', // Името на база данните. 
                $mysql_table = 'username', // Името на таблицата. 
                $mysql_field = 'email'; // Името на полето, където се съдържат e-mail адресите. 
        
        // Създаваме масив съдържащ E-Mail адресите, които не искаме да получават съобщения. 
        // Можете да допълвате списъка, като използвате посочените e-mail адреси за образец. 
        private $skip = array 
        ( 
                'nospam@yourdomain.com' 
        ); 
        
        private 
                $sleepMail = 1, // Какъв ще е интервала между отделните съобщения (в секунди)? Ще го използваме, за да избегнем претоварване на сървъра. 
                $sleepCycle = 10, // Какъв ще е интервала между отделните цикли (в секунди)? Ще го използваме, за да избегнем претоварване на сървъра. 
                $mailPerCycle = 20; // Колко съобщения искаме да се изпращат в един цикъл? 
        
        private 
                $mailSubject = 'Mass Email', // Темата на съобщението, което ще получават потребителите. 
                $mailSender = 'do-not-reply@yourwebsite.com'; // От кой e-mail адрес ще бъде изпратено съобщението? 
        
    // ========================================= 
    // КРАЙ НА КОНФИГУРАЦИЯТА 
    // ========================================= 
    // Препоръчвам да не се редактира нищо по-долу, освен ако не знаете точно какво правите ;-) 
    // ========================================= 
        
        private $emails = array(), $message; 
        
        private function sleepBuffer($secs) 
        { 
                         
                        echo '<br />'; 
                        ob_flush(); 
                        flush(); 
                        sleep($secs); 
        } 
        
        public function __construct($message) 
        { 
                $this -> message = $message; 
                switch($this -> source) 
                { 
                        case 1; 
                                if(empty($this -> sourceFile)) 
                                { 
                                        echo 'Моля задайте параметър за \$sourceFile.'; 
                                        exit; 
                                } 
                                
                                if(!file_exists($this -> sourceFile)) 
                                { 
                                        printf('Не мога да открия файл <strong>%s</strong>.', $this -> sourceFile); 
                                        exit; 
                                } 
                                
                                if(!is_readable($this -> sourceFile)) 
                                { 
                                        printf('Нямам достатъчно права, за да прочета файл <strong>%s</strong>', $this -> sourceFile); 
                                        exit; 
                                } 
                                
                                $this -> readFileContent(); 
                                break; 
                        
                        case 2; 
                                if(empty($this -> mysql_server) || empty($this -> mysql_username) || empty($this -> mysql_password) || empty($this -> mysql_database) || empty($this -> mysql_table) || empty($this -> mysql_field)) 
                                { 
                                        echo 'Едно или повече задължителни полета за връзката с MySQL сървъра не са попълнени.'; 
                                        exit; 
                                } 
                                
                                $connect = mysql_connect($this -> mysql_server, $this -> mysql_username, $this -> mysql_password) or die (mysql_error()); 
                                $query = sprintf('SELECT DISTINCT %s FROM `%s`.`%s`', $this -> mysql_field, $this -> mysql_database, $this -> mysql_table); 
                                $exec = mysql_query($query) or die (mysql_error()); 
                                $count = mysql_num_rows($exec); 
                                
                                if($count == 0) 
                                { 
                                        echo 'Няма открит нито един валиден E-Mail адрес.'; 
                                        exit; 
                                } 
                                                                
                                while($row = mysql_fetch_assoc($exec)) 
                                { 
                                        $email = trim(rtrim($email)); 
                                        if($this -> validateEmail($row[$this -> mysql_field]) === true) 
                                                $emails[] = $row[$this -> mysql_field]; 
                                } 
                                
                                $this -> emails = $emails; 
                                break; 
                } 
                
                printf('Открити са <strong>%s</strong> валидни E-Mail адреса.', number_format(count($this -> emails))); 
                $this -> sendMail(); 
        } 
        
        private function validateEmail($email) 
        { 
                if((preg_match('/^[a-z0-9-_\.]+@{1}+[a-z0-9-]+\.[a-z]{2,4}$/i', $email) || preg_match('/^[a-z0-9-_\.]+@{1}+[a-z0-9]+\.[a-z0-9-_]+\.[a-z]{2,4}$/i', $email)) && !in_array($email, $this -> skip)) 
                        return true; 
                else 
                        return false; 
        } 
        
        private function readFileContent() 
        { 
                $fopen = fopen($this -> sourceFile, 'r'); 
                $fread = fread($fopen, filesize($this -> sourceFile));          
                $explode = explode("\n", $fread); 
                $count = 0; 
                $emails = array(); 
                
                foreach($explode as $email) 
                { 
                        $email = trim(rtrim($email)); 
                        if($this -> validateEmail($email) === true && !in_array($email, $emails)) 
                        { 
                                $emails[] = $email; 
                                $count++; 
                        } 
                } 
                
                if($count == 0) 
                { 
                        echo 'Няма открит нито един валиден E-Mail адрес.'; 
                        exit; 
                } 
                
                $this -> emails = $emails; 
        } 
        
        private function sendMail() 
        { 
                $headers  = 'MIME-Version: 1.0' . "\r\n"; 
                $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; 
                $headers .= 'From: ' . $this -> mailSender . "\r\n"; 
                $i = 0; 
                $n = 1; 
                
                echo '<br /><br />'; 
                foreach($this -> emails as $emails) 
                { 
                        if($i == $this -> mailPerCycle) 
                        { 
                                $this -> sleepBuffer($this -> sleepCycle); 
                                $i = 0; 
                        } 
                        
                        $status = (@mail(strtolower($emails), $this -> mailSubject, $this -> message, $headers) === true) ? '<span style="color:green; font-weight:bold">OK!</span>' : '<span style="color:red; font-weight: bold">Failed</span>'; 
                        printf('<span style="font-size: 16pt">%s.</span> %s %s<br />', $n, strtolower($emails), $status); 
                        $this -> sleepBuffer($this -> sleepMail); 
                        $i++; $n++; 
                } 
        } 
} 

if(isset($_POST['message'])) 
{ 
        $message = '<style type="text/css"> 
body 
{ 
        color: 999; 
} 

.table 
{ 
        width: 100%; 
        border: 1px; 
        border-style: solid; 
        border-color: #99c; 
        font-size: 11pt; 
} 

.head 
{ 
        background-color: #99c; 
        color: #FFF; 
        font-weight: bold; 
        text-align: center; 
} 

a 
{ 
        color: 10c; 
        font-weight: bold; 
        text-decoration: none; 
} 

a:hover 
{ 
        color: red; 
        font-weight: bold; 
        text-decoration: none; 
} 

hr 
{ 
        color: #99c; 
        background-color: #10c; 
        height: 1px; 
} 
</style> 

<table class="table" align="center"> 
        <tr><td class="head">Dreaming</td></tr> 
        <tr><td><hr width="100%" /></td></tr> 
        <tr> 
                <td> 
                        Здравейте,<br /> 
                        Това съобщение е автоматично генерирано от системата и се изпраща масово до всеки потребител. 
                        <br />Моля не отговаряйте на него, то се изпраща единствено с информационна цел. 
                </td> 
        </tr> 
        <tr><td><hr width="100%" /></td></tr> 
        <tr> 
                <td> 
                        ' . nl2br($_POST['message']) . ' 
                </td> 
        </tr> 
</table>'; 
        $mail = new massMail($message); 
} 
else 
        echo ' 
<form action="" method="POST"> 
<textarea name="message" style="width: 100%; height: 400px"></textarea><br /> 
<input type="submit" value="Изпрати съобщението" /> 
</form>'; 
?>
 

Back
Горе