Witam. Mam problem z wysyłaniem maili przez PHP, na wstępie dodam że nie mogę używać nic co byłoby wbudowane w PHP (funkcja mail etc), a więc wykorzystałem taki prosty kod
<?php
class SMTPClient{
public function SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, $from, $to, $subject, $body){
$this->SmtpServer = $SmtpServer;
$this->SmtpUser = base64_encode ($SmtpUser);
$this->SmtpPass = base64_encode ($SmtpPass);
$this->from = $from;
$this->to = $to;
$this->subject = $subject;
$this->body = $body;
if($SmtpPort=="") $this->PortSMTP=25; else $this->PortSMTP=$SmtpPort;
}
public function SendMail(){
if($SMTPIN=fsockopen($this->SmtpServer,$this->PortSMTP)){
fputs ($SMTPIN, "EHLO ".$HTTP_HOST."\r\n");
$talk["hello"] = fgets ( $SMTPIN, 1024 );
fputs($SMTPIN, "auth login\r\n");
$talk["res"]=fgets($SMTPIN,1024);
fputs($SMTPIN, $this->SmtpUser."\r\n");
$talk["user"]=fgets($SMTPIN,1024);
fputs($SMTPIN, $this->SmtpPass."\r\n");
$talk["pass"]=fgets($SMTPIN,256);
fputs ($SMTPIN, "MAIL FROM: <".$this->from.">\r\n");
$talk["From"] = fgets ( $SMTPIN, 1024 );
fputs ($SMTPIN, "RCPT TO: <".$this->to.">\r\n");
$talk["To"] = fgets ($SMTPIN, 1024);
fputs($SMTPIN, "DATA\r\n");
$talk["data"]=fgets( $SMTPIN,1024 );
fputs($SMTPIN, "To: <".$this->to.">\r\nFrom: <".$this->from.">\r\nSubject:".$this->subject."\r\n\r\n".$this->body."\r\n.\r\n");
$talk["send"]=fgets($SMTPIN,256);
fputs ($SMTPIN, "QUIT\r\n");
fclose($SMTPIN);
}
return $talk;
}
}
?>
Wysyła ładnie, ale niektóre serwisy a raczej programy pocztowe wyświetlają krzaki, no to kodowanie sobie pomyślałem i zrobiłem tak
fputs($SMTPIN, "To: <".$this->to.">\r\nFrom: <".$this->from.">\r\nContent-type: text/html; charset=utf-8\r\nSubject:".$this->subject."\r\n\r\n".$this->$this->body."\r\n.\r\n");
Ładnie kodowanie wyświetla ALE nie czyta już poprawnie przejścia do następnej linii.
fputs($SMTPIN, "To: <".$this->to.">\r\nFrom: <".$this->from.">\r\nSubject:".$this->subject."\r\n\r\n".iconv('utf-8','iso-8859-2'$this->body)."\r\n.\r\n");
i takie konwertowanie przez iconv też nie pomogło z liniami ja już nie wiem czemu tak się dzieje, myślałem że przez to że są same \r ale po dodaniu \n nic się nie zmieniło. Od razu mówię że nie mogę też używać jakichś skomplikowanych narzędzi bo cały system się rozleci, i tak ledwo się trzyma kod z 2003 dla PHP 4 (a teraz stoi na 5.3).
Proszę o pomoc bo mnie już się pomysły skończyły.