$msg .= "\r\n\r\n";
return $msg;
}
send()
Мы снова заменим метод send(), определенный в классе My_Mail, чтобы добавить заголовки MIME и построить части тела:
function send()
{
if (count($this->files) > 0) $'this->has_attach = true;
. if (!$this->checkFields()) return false;
$this->subject = stripslashes(trim($this->subject)); $this->body = stripslashes($this->body);
$tfiis->buildHeaders() ; $this->buildMimeHeaders();
if return false;
if (mail($this->tOj $this->subject, $this->body,
implode("\r\n", $this->headers))) return true; else {
$this->ERROR_MSG = $this->ERR_SEND_MAIL_FAILL)RE; ■ ; ,
return false;
}
}
)
? > ' " V
Тестирование класса My_Mime_Mail Class
Вот пример сценария, в котором используется наш класс: <?php
// my_mime_mail_class_test.php include(", /my_mime_mail_class.php"); $maii = new My_Mime_Mail(); $mail->to = 'wankyu@whatever.com' ;
$mail->from = 'yonsuk@whoelse.com'; $mail->subject = "My picture!"; $maiI->body = "Here goes my picture! Send me yours!"; $mail->files[0]["file"] = '/home/yonsuk/yonsuk.gif'; $mail->files[0]["filename"] = 'yonsuk.gif'; $mail->files[0]["filetype"] = 'image/gif';
if ($mail->send()> {
echo( "Successfully sent an email titled '$mail->subject'! ");
У else {
echo($mail->errorMsg());
}
echo("<br>");
echo(str_replace("\r\n", "<br>", $mail->viewMsg())); ?>
Если пользователь загружает на сервер файл с помощью функции РНР для отправки файлов, то почтовый сценарий автоматически получает доступ к следующим глобальным переменным: $userfile, $userfile_name, Suserfi- le_size и $userfile_type. Переменная $userfile_type может оказаться недоступной, если броузер не предоставит ее. С помощью этих переменных легко построить часть тела, содержащую загруженный на сервер файл:
$mail->files[0][ "file"] = Suserfile; $mail ->files[0]["filename"] = $userfile_name; $mail ->files[0]["filesize"] = $userfile_size; $mail ->files[0]["filetype"] = $userfile_type;
Создание класса My_Smtp_Mime_Mail
Если расширять класс My_Smtр_Ма11, а не класс My_Mail, то можно отправлять почтовые сообщения MIME через удаленный сервер SMTP. Однако при этом необходимо переопределить метод send():
// my_smtp_minie__mail_class. php include("./my_smtp_mail_class.php");