Witam, mam pytanie, wysyłam wiadomość email przez PHP, do testowania używam Test Mail Server Tool i do klienta pocztowego Mozilla Thunderbird. Do wysyłania wiadomości używam poniższego kodu:
<?php
class m_Mail {
var $to;
var $subject;
var $content;
var $headers;
var $marker;
var $type;
function eMail($type = "1", $from, $replyto)
{
$this->type = $type;
$this->headers .= "From: " . $from . "\n";
$this->headers .= "Reply-to: " . $replyto . "\n";
$this->headers .= "MIME-Version: 1.0\n";
if ($type == 1) {
$this->headers .= "Content-Type: text/html; charset=utf-8\n";
} else {
srand((double)microtime() * 1000000);
$this->marker = md5(uniqid(rand()));
$this->headers .= "Content-Type: multipart/mixed;\n";
$this->headers .= "\tboundary=\"___" . $this->marker . "==\"\n\n";
$this->content = "--___" . $this->marker . "==\n";
$this->content .= "Content-Type: text/html; charset=\"utf-8\"\n";
$this->content .= "Content-Transfer-Encoding: 8bit\n\n";
}
}
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));
}
}
function eMailSend($to)
{
if ($this->type != 1) {
$this->content .= "--___" . $this->marker . "==--\n\n"; // close marker
}
mail ($to, $this->subject, $this->content, $this->headers);
}
function eMailContent($subject, $content)
{
$this->subject = $subject;
$this->content .= $content;
}
}
?>
Źródło:http://forum.php.pl/index.php?showtopic=132032
Mam dwa problemy:
- Kiedy wysyłam wiadomość z załącznikiem to w wiadomości nie mam treści, dlaczego, jak to zmienić?
- Kiedy wysyłam załącznik np.
plik.txt
którego zawartość to
Treść wiadomości.
po jego przesłaniu i pobraniu otrzymuje w nim coś takiego:
Treść wiadomości.ɧj۞¦ݢj̭wsǜ蝵kg۷Κࠞ㽹
Dlaczego tak to wygląda, czemu tak się dzieje? Kiedy np. przesyłam plik .jpg, czy .pdf wielkość pliku po pobraniu jest minimalnie większa niż przed jego wysłaniem, więc podejrzewam, że podobne wartości są dodawane do każdego pliku. Czy wie ktoś dlaczego? Podejrzewam, że ma to jakiś związek z kodowaniem, ale nie wiem dokładnie jaki i jak się tego pozbyć.
Bardzo proszę o pomoc. Pozdrawiam.