Kod HTML we wiadomości email z załącznikiem

0

Witam serdecznie, wysyłam wiadomości email z załącznikiem i bez za pomocą tej klasy:

 
	class eMail{
	
		public $to;			// odbiorc awiadomosci
		public $subject;	// temat wiadomosci
		public $content;	// tresc wiadomosci
		public $headers;	// naglowki wiadomosci
		public $marker;		// znacznik oddzielajacy zalaczniki
		public $type;		// type-maila
		
		function __construct($type='1',$from='Imię Nazwisko',$email='[email protected]'){

			$this->type=$type;
			
			$this->headers.='From: '."=?UTF-8?B?".base64_encode($from)."?="."<$email>".PHP_EOL;
			$this->headers .= "MIME-Version: 1.0".PHP_EOL; 
			
			if($type==1){
					$this->headers .= "Content-type: text/html; charset=utf-8".PHP_EOL; 
			} else {
				srand((double)microtime() * 1000000);  
				$this->marker = md5(uniqid(rand()));  
				$this->headers .= "Content-Type: multipart/mixed;".PHP_EOL;  
				$this->headers .= "\tboundary=\"___" . $this->marker . "==\"\n\n";  
				$this->content = "--___" . $this->marker . "==\n";  
				$this->content .= 'Content-Type: text/plain; charset=utf-8'.PHP_EOL;  
				$this->content .= "Content-Transfer-Encoding: 8bit\n\n";
			}
		}
		public function eMailContent($subject,$content){
			$this->subject = base64_encode($subject);
			$this->subject = "=?UTF-8?B?".$this->subject."?=";
			$this->content .= $content;
		}
		public function eMailAttachment($mimeType,$fileName,$data){
			if($this->type!=1){
				$this->content.="\n\n--___".$this->marker."==\n";
				$this->content.="Content-Type: ".$mimeType."; name=\"".$fileName."\"\n";
				$this->content.="Content-Transfer-Encoding: base64\n";
				$this->content.="Content-Disposition: attachment; filename=\"".$fileName."\"\n\n";
				$this->content.=chunk_split(base64_encode($data));
			}
		}
		public function eMailSend($to){
			if($this->type != 1){
				$this->content.="--___".$this->marker."==--\n\n";
			}
			if (mail($to,$this->subject,$this->content,$this->headers)){
				return 1;
			} else {
				return 0;
			}
		}
	}

I problem jest taki, że gdyby wysyłam e-mail bez załącznika (Content-type: text/html; charset=utf-8) to wszytko jest ok, czyta kod HTML, natomiast jak wysyłam kod HTML we wiadomości z załącznikiem(Content-Type: text/plain; charset=utf-8) to dostaję na pocztę wiadomość ze encjami, ale jak przepuszczam tę wiadomość przez htmlspecialchars_decode() to też nie działa. Ma ktoś jaki pomysł, inny niż PHPMailer?

EDIT: // PHPMailer przy autoryzacji na niektórych tańszych serwerach się wysypuje. Testuje obecnie jak działa bez autoryzacji SMTP i chyba będę musiał z niego skorzystać. A nie chcą go używać bo jest trochę za obszerny, potrzebuje prostej i krótkiej klasy do wysyłania emaili wraz z załącznikiem.

0

Ostatnio używałem Swift Mailer'a.

1 użytkowników online, w tym zalogowanych: 0, gości: 1