Поиск

Основы работы электронной почты Internet

Прежде чем дать волю своей фантазии на ниве программирования по части отправки сообщений электронной почты с помощью средств Perl, необходимо разобраться в том, как организована работа электронной почты в Internet.

Еще до рождения Perl, когда службы Web не было и в помине (т.е. в "мыслях" у NCSA) и модемы работали очень медленно, электронная почта была реализована через систему, именуемую UNIX-to- UNIX copy (UUCP). Когда вы посылали электронное сообщение в той старой системе, локальный компьютер "упаковывал" его и передавал дальше, к следующему компьютеру в цепочке, которая снова "упаковывала" его и передавала очередному звену. Каждая система в цепи добавляла к "транзитному" сообщению немного "своих" данных, которые означали, что сообщение обработано и передано дальше (рис. 22.1).

Этот метод обмена почтовыми сообщениями по вполне очевидным причинам называется передачей сообщения с промежуточным хранением (store and forward). Система UUCP была с тех пор заменена более современными системами, но основной метод передачи с промежуточным хранением по-прежнему остался в силе. При отправке почты со своего компьютера ее "подхватывает" другая система и передает еще одной системе, которая затем передает почту дальше, и так продолжается до тех пор, пока ее не получит система, для которой предназначено сообщение.

Современные протоколы в корне изменили процесс передачи сообщений. Самым популярным является простой протокол пересылки почты (Simple Mail Transport Protocol — SMTP), который используется для отправки почты по цепи (рис. 22.2). Для получения почты в пункте назначения обычно используется либо почтовый протокол (Post Office Protocol — POP), либо протокол доступа к сообщениям Internet (Internet Message Access Protocol — IMAP). Пока остановимся на работе протокола SMTP.

Отправка почтового сообщения

Чтобы послать сообщение, вам потребуется агент передачи почты (Mail Transport Agent, или МТА) и компьютер, обеспечивающий функционирование протокола SMTP. Объясним поподробнее.

Агент передачи почты — это программа, которая располагается на компьютере пользователя. Обычно она поставляется вместе с операционной системой и отвечает за принятие сообщений электронной почты и корректную их ретрансляцию. МТА обычно настраивается при установке операционной системы. Одна из распространенных МТА-программ в системах UNIX называется sendmail. Программа sendmail принимает почтовое сообщение и решает, как доставить его по назначению.

Чтобы послать почтовое сообщение в среде UNIX, используйте следующий синтаксис командной строки:

В этом фрагменте организуется отправка короткого сообщения по адресу foo@bar.com. Программа sendmail берет на себя все трудные этапы работы: принимает решение о выборе метода передачи сообщения, обрабатывает возвращаемую почту и т.д.

В операционных системах Microsoft Windows или Macintosh нет встроенной программы МТА. К счастью, модуль Perl позволяет отправлять почту напрямую. Модуль Net::SMTP может посылать почту без посредничества программы МТА, но в этом случае вам нужно знать имя компьютера, обеспечивающего ретрансляцию почты с помошью протокола SMTP. Обычно это имя указывается провайдером в карточке регистрации при получении доступа к Internet в графе "Mail Host", или сервер SMTP. Узнайте имя своего почтового сервера и запишите его где-нибудь: оно потребуется вам чуть позже.

Провайдер может сообщить вам несколько имен серверов, управляющих процессами отправки и получения почтовых сообщений. Для тем, обсуждаемых на этом занятии, вам понадобится узнать имя SMTP-сервера, отправляющего почту.

Помните: программе, которая отправляют почту по протоколу SMTP, понадобится корректно работающий SMTP-сервер — в противном случае процесс отправки почты работать не будет.

Имя SMTP-сервера зависит от того, откуда вы отправляете почту. Если вы делаете это из дома, имя сервера обязательно сообщит вам провайдер услуг (Internet service provider — ISP). Если вы отправляете почту, используя учетную запись на арендуемом Web-сервере, имя SMTP-сервера можно узнать на одной из Web-страниц этого сервера. Обычно почтовые серверы не принимают сообщения, посланные с незнакомых для них систем.
Немного о правилах хорошего тона

В следующем разделе вы узнаете о новой функции sendjnail, которую можно использовать для отправки почты с помощью Perl-программы. Это средство весьма полезно и в то же время очень опасно. Отправка кому-либо почты — это в некотором роде посягательство на его частную жизнь и собственность. Представьте такую картину: вы просите получателя почты выделить вам некоторое время и дисковое пространство. Вы также просите все промежуточные системы, расположенные между вашей и системой получателя, передать эту почту для вас. Не слишком ли много просьб для постороннего лица?

Ниже перечислены некоторые "правила хорошего тона", или сетевого этикета, которые следует соблюдать при отправке почты с помощью Perl-программ или любого другого средства.

  • Сначала проверьте свою программу с использованием хорошо известных адресов (например, своих собственных) и маленьких сообщений. Неприятности и так подстерегают на каждом шагу — постарайтесь не создавать новых.
  • Не отправляйте по электронной почте сообщения коммерческого характера без специального запроса. Непрошеная почта — обычно называемая спамом — стала настоящей проблемой для пользователей Internet. Лишь немногие не возражают против получения такого вида почтовых сообщений. Остальных же это по меньшей мере раздражает, а то и просто возмущает. Корпорации, злоупотребляющие возможностями электронной почты, непременно навлекают на себя гнев множества пользователей Internet. Интересуясь адресом электронной почты, всегда спрашивайте, согласен ли этот человек впоследствии получить от вас сообщение. Уважайте также желание многих пользователей не попадать в посторонние списки почтовой рассылки.
  • Не отправляйте по электронной почте за один раз слишком объемные сообщения (даже если они были затребованы). Во-первых, буфер вашего локального почтового сервера может переполниться. При этом местный провайдер наверняка временно закроет вашу учетную запись, чтобы справиться с неполадками. Во-вторых, если ваше сообщение вызовет перегрузку почтового сервера получателя, удаленный провайдер может просто заблокировать всю электронную почту, поступающую из вашего домена. Потеря возможности посылать что-либо таким крупным доменам, как aol.com, hotmail.com, может плачевно сказаться на вашем бизнесе. Более того, вполне вероятно, что ваш провайдер закроет вашу учетную запись и выставит вам дополнительный счет.
  • Позаботьтесь об указании корректного обратного адреса в заголовках From: и Reply To: сообщения электронной почты. Существует возможность использования Perl для подделки электронной почты, но подделка не содержит цепочки адресов почтовых серверов, через которые прошло сообщение. Однако учтите, что вы можете нажить себе серьезные неприятности, подделывая почтовые сообщения.
  • Всегда используйте свой собственный почтовый сервер. Злоупотребление почтовыми серверами других провайдеров быстро приведет к закрытию вашей учетной записи и, возможно, даже к предъявлению вам дополнительного счета.
  • Не отправляйте ничего не подозревающим людям огромных или большого числа маленьких сообщений. Это называется почтовой бомбардировкой (mailbombing) и, скорее всего, закончится аннулированием вашей учетной записи провайдером и может вызвать неприятности в области правовых норм.

Практически все эти советы являются не просто "правилами хорошего тона", или сетевого этикета. Нарушение некоторых из перечисленных правил может привести к прекращению обслуживания вас провайдером Internet и/или повлечь правовую ответственность за ущерб, нанесенный получателям вашей почты. При создании учетной записи провайдер, скорее всего, предупредит вас о том, что любой из вышеперечисленных факторов послужит основанием для ее аннулирования, и, возможно, вы будете нести личную ответственность за нанесенный ущерб.

Золотое правило: быть консерватором, когда вы отправляете что-то другим, и либералом по отношению к тому, что вы получаете.

Для Internet характерна очень долговременная коллективная память. Тех, кто действительно злоупотреблял почтовой службой, помнят очень долго и не хотят иметь с ними дела. Помните, что испорченную репутацию очень трудно потом исправить.