Серверный JavaScript 1.4. Руководство по использованию

       

Почтовая Служба/Mail Service


Вашему приложению может понадобиться отправить email-сообщение. Для этого Вы используете экземпляры класса SendMail. Единственным методом SendMail является send, для отправки сообщения, а errorCode и errorMessage служат для интерпретации ошибок.

Например, следующий скрипт отсылает почту в vpg со специфицированной темой/subject и телом сообщения:

<server>
SMName = new SendMail();
SMName.To = "vpg@royalairways.com";

SMName.From = "thisapp@netscape.com";
SMName.Subject = "Here's the information you wanted";

SMName.Body = "sharm, maldives, phuket, coral sea, taveuni, maui,

cocos island, marathon cay, san salvador";
SMName.send();
</server>

В таблице даны свойства класса SendMail. Свойства To и From необходимы; все остальные свойства - по выбору/optional.



To

Список разделённых запятыми первичных/primary получателей сообщения.

From

Имя пользователя/user name отправляющего сообщение.

Cc

Список разделённых запятыми дополнительных получателей сообщения.

Bcc

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

Smtpserver

Имя почтового сервера (SMTP). По умолчанию это свойство имеет значение, установленное на сервере администрирования.

Subject

Тема сообщения.

Body

Текст сообщения.

Вы можете добавлять к этим свойствам любые другие. Все свойства класса SendMail включаются в шапку/header сообщения при фактической отправке. Например, следующий код отсылает сообщение получателю bill от vpg, устанавливая в поле vpg organization значение Royal Airways. Отвечает на сообщение от vpgboss.

mailObj["Reply-to"] = "vpgboss";
mailObj.Organization = "Royal Airways";

mailObj.From = "vpg";
mailObj.To = "bill";
mailObj.send();

Дополнительно о предопределённых полях шапки см. , стандарт формата текстовых сообщений Internet.

Класс SendMail позволяет отправлять простое текстовое почтовое сообщение или сложное MIME-сообщение. Вы можете также добавить в сообщению приложение/attachment. Для отправки MIME-сообщения добавьте свойство Content-type к объекту SendMail и укажите в нём MIME-тип сообщения.


Например, следующий участок кода отсылает изображение в формате GIF:

<server>
SMName = new SendMail();
SMName.To = "vpg@royalairways.com";

SMName.From = "thisapp@netscape.com";
SMName.Subject = "Here's the image file you wanted";

SMName["Content-type"] = "image/gif";
SMName["Content-Transfer-Encoding"] = "base64";

// В следующем операторе image2.gif обязан быть кодирован с базой 64/base 64.

// Если вы используете uuencode для кодирования GIF-файла, удалите header
// (например, "begin 644 image2.gif") и замыкающий ("end").
fileObj = new File("/usr/somebody/image2.gif");

openFlag = fileObj.open("r");
if ( openFlag ) {

   len = fileObj.getLength();
   SMName.Body = fileObj.read(len);

   SMName.send();
   }
</server>

Некоторые MIME-типы требуют больше информации. Например, если content type это multipart/mixed, Вы обязаны также специфицировать сепаратор границ для одного или более различных наборов данных тела. Например, следующий код отсылает многочастное сообщение, содержащее две части, каждая из которых является обычным текстом:

<server>
SMName = new SendMail();
SMName.To = "vpg@royalairways.com";

SMName.From = "thisapp@netscape.com";
SMName.Subject = "Here's the information you wanted";

SMName["Content-type"]
   = "multipart/mixed; boundary=\"simple boundary\"";

fileObj = new File("/usr/vpg/multi.txt");
openFlag = fileObj.open("r");
if ( openFlag ) {

   len = fileObj.getLength();
   SMName.Body = fileObj.read(len);

   SMName.send();
   }
</server>

Вот файл multi.txt, содержащий многочастное сообщение:

Это место для преамбулы.
Она игнорируется.
Это удобное место для комментария, предназначенного для читателей, не знакомых с MIME.
--простая граница

Это первая часть тела сообщения.
Это НЕ конец с символом обрыва строки.

--простая граница
Content-Type: text/plain; charset=us-ascii

Это вторая часть тела сообщения.
Это КОНЕЦ с символом обрыва строки.

--простая граница--
Это эпилог. Он также игнорируется.

Вы можете вкладывать друг в друга многочастные сообщения. То есть, если у Вас есть сообщение, content type которого многочастный, Вы можете включить другой многочастное сообщение в его тело. В таких случаях будьте внимательны и убедитесь, штаа каждый вложенный многочастный объект использует разные ограничители.

Детали о MIME-типах см. в

, MIME-стандарте. Об отправке почтовых сообщений в JavaScript см. также описание этого класса в книге

.


Содержание раздела