русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Порядок выполнения лабораторной работы


Дата добавления: 2015-07-09; просмотров: 642; Нарушение авторских прав


 

Для начала, необходимо установить почтовый сервер и настроить почтовый клиент.

Для настройки почтового сервера, необходимо:

1) войти в папку «Почтовый сервер»;

2) запустить файл “CourierMS.exe”;

3) посмотреть во вкладке «Журнал» сообщения и убедиться, что серверы SMTP и POP3 запущены без ошибок;

4) открываем файл «cms_ru.chm» и следуем инструкции, которая указана во вкладке «Начало работы». Эта инструкция практически повторяет, то, что здесь уже написано, поэтому проверьте еще раз, все ли ты сделали;

5) во вкладке «Домены» необходимо переименовать основной домен (например, laba);

6) во вкладке «Пользователи» необходимо добавить нового пользователя – ввести имя и пароль латиницей (например, lily, пароль 1);

7) сворачиваем окно сервера (не закрываем!!!);

Для настройки клиентского сервера необходимо:

1) открыть Microsoft Outlook, либо любой другой почтовый клиент;

2) в главном меню выбрать Сервис -> Учетные записи -> Добавить -> Почта, выводимое имя – любое, далее адрес электронной почты будет состоять из имени пользователя@имени домена (т.е. lily@laba); далее – сервер входящих сообщений localhost, сервер SMTP – localhost; далее – пароль такой же, как и указано при настройке сервера (у нас, 1), готово;

3) пробуем написать письмо самому себе при помощи программы Outlook Express. Для этого: Создать -> Кому: lily@laba, тема и сообщение – любые; при отправке сообщения и нажатии клавиши Доставить, письмо должно оказаться во входящих; если сообщение доставлено, то все настроено правильно, можно приступать к программированию.

 

Пример кода при данных параметрах приведен ниже:

 

 

Задание 1. Отослать сообщение разными способами средствами PHP.

Самый простой способ отправить письмо при помощи PHP - воспользоваться стандартной функцией mail. Она имеет следующий синтаксис:



bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]])

Обязательные параметры:

· E-mail получателя

· Заголовок письма

· Текст письма

Необязательные параметры:

· Дополнительные заголовки письма

· Дополнительные параметры командной строки

Возвращаемое значение::

· true, если письмо было принято к доставке

· false, в противном случае.

Простейший пример ее использования выглядит так:

 

<html>

<HEAD>

<TITLE>

</TITLE>

</HEAD>

<BODY>

<?php

mail("lily@laba", "the subject", "Ya love ju","From: lily@laba \r\n");

echo "Письмо отправлено";

?>

</BODY>

</html>

 

Выполнив этот скрипт, зайдите в Outlook и на панели инструментов нажмите кнопку «Доставить…». Сообщение, отправленное средствами PHP должно появиться во входящих!

Если у Вас на экране появилась ошибка "Fatal error: Call to undefined function: mail()", это значит, что либо PHP собран без поддержки функции mail, либо она запрещена настройками сервера. Такая практика в последнее время широко распространена на бесплатных хостинговых серверах. Если Вы столкнулись с такой проблемой, воспользуйтесь возможностью отправки писем при помощи сокетов (sockets), детально описанной в разделе "альтернативные способы отправки писем". В случае, если Вы администратор системы, обратитесь к разделу "Как настроить сервер" и попробуйте устранить эту проблему как таковую.

Дополнительные заголовки письма (additional headers) могут использоваться для указания кодировки письма, адреса отправителя, обратного адреса и множества других опций. Они должны быть разделены переводом строк: комбинацией "\r\n". Например, так:

<?php
mail("nobody@example.com", "the subject", $message,
"From: webmaster@ example.com \r\n"
."X-Mailer: PHP/" . phpversion());
?>

Перейдем к более сложному примеру. Предыдущие скрипты работали с форматом text/plain, теперь же попробуем отправить почту в формате HTML нескольким адресатам с указанием кодировки:

<?php
$to = "Mary &lt;mary@example.com>, " ;
$to .= "Kelly &lt;kelly@example.com>";
$subject = "Birthday Reminders for August";
$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
</body>
</html>';
$headers = "Content-type: text/html; charset=windows-1251 \r\n";
$headers .= "From: Birthday Reminder <birthday@example.com>\r\n";
$headers .= "Bcc: birthday-archive@example.com\r\n";
mail($to, $subject, $message, $headers);
?>

Комментарии к примеру: вначале мы определяем, кому адресовано письмо. Если получателей несколько, их адреса указываются в одной строке и разделяются запятыми. При задании заголовка и тела письма следите, чтобы кодировка, в которой они действительно написаны, совпадала с заявленной в заголовке charset.

В нашем примере переменная $headers состоит из четырех строк: в первых двух мы указываем тип отправляемого письма - HTML - и его кодировку. В следующих двух строках мы указываем адрес отправителя и адрес, по которому следует отправить скрытую копию письма.

______________________________________________________________________________

!!! Зачастую при отправке письма, в котором тема и текст послания написаны русскими буквами на почту приходит сообщение в непонятных символах. А все дело в том, что для почты у нас принято использовать кодировку KOI8-R, а для веб – Win-1251 (ANSI) –так, и выходит – мы шлем с сайтов в win-1251, а почтовые программы открывают его как KOI8-R...

Выходов из ситуации много. Самое простое, что можно сделать – перекодировать тему и текст сообщения. В PHP предусмотрена стандартная процедура:

convert_cyr_string(string str, string from, string to);

Она перекодирует текст, содержащийся в переменной $str из кодировки $from в кодировку $to. Указание кодировки происходит посредством символов латинского алфавита, доступные параметры и соответствующие им кодировки представлены в таблице:

 

k KOI8-R
w Win-1251
i ISO8859-5
a X-CP866
d X-CP866
m X-Mac-Cyrillic

Как видно из таблицы, в нашем случае, перед отправкой сообщения, содержащегося в переменной $message, его нужно перекодировать из w в k (из Win-1251 в KOI8-R), это выглядит так: $message, = convert_cyr_string ($message,w,k); вот и все, теперь можно спокойно отсылать наше письмо. Код mail.php выглядит так:

<?php

if (isset($_POST[subject])) {$subject = $_POST[subject];}

if (isset($_POST[Comment])) {$message = $_POST[Comment];}

$message = convert_cyr_string ($message,w,k);// перекодировка текста сообщения

$subject = convert_cyr_string ($subject,w,k);// перекодировка темы сообщения

$verify = mail("lily@laba", "$subject", "$message", "From: lily@laba \r\n");

if ($verify == 'true')

{

echo "<p>Сообщение отправлено";

}

else

{

echo "<p>Сообщение не отправлено";

}

?>

Одна из часто возникающих проблем при отправке почты в koi8 - это формирование заголовка письма. Для ее решения необходимо воспользоваться следующим кодом, который переводит строку в кодировке win-1251 в понятный большинству почтовых клиентов koi8 заголовок.

<?php
$subject = '=?koi8-r?B?'.base64_encode(convert_cyr_string($subject, "w","k")).'?=';
?>

К примеру, заголовок "Почтовое уведомление" будет выглядеть как

=?koi8-r?B?8M/e1M/Xz8Ug1dfFxM/NzMXOycU=?=

Если Вы все сделали правильно, а получатель письмо не получает (помните, что временные издержки на доставку письма зависят от многих факторов и могут колебаться от нескольких минут до нескольких часов), убедитесь в том, что оно действительно отправилось. Это необходимо сделать в 2 этапа. Вначале попробуйте выполнить код:

<?php
if (mail("nobody@example.com", "the subject", "Example message",
"From: webmaster@example.com \r\n")) {
echo "messege acepted for delivery";
} else {
echo "some error happen";
}
?>

Индивидуальное задание:Разработать форму (макет приведен на рисунке 1) для отправки e-mail указанному пользователю в соответствии с приведенными выше описаниями. Внедрить данную форму в разрабатываемый в ходе предыдущих работ сайт.

 

Рисунок 1 – Форма отправки электронной почты

 

 



<== предыдущая лекция | следующая лекция ==>
Задание 4. Создание гостевой книги. | Для заданий B1–B12 запишите ответ в указанном месте.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.11 сек.