Избранное | Русский | Войти

Обзор API Java для электронной почты

Приложения App Engine могут отправлять электронные сообщения от имени администраторов приложения и пользователей аккаунтов Google. Для отправки сообщений приложения могут использовать службу Mail.

Отправка электронной почты с помощью API JavaMail

API Java для службы Mail поддерживает интерфейс JavaMail (javax.mail) для отправки сообщений по электронной почте.

При создании сессии JavaMail не требуется указание конфигурации SMTP-сервера. Для отправки сообщений по электронной почте App Engine всегда использует службу Mail.

import java.util.Properties;
import javax.mail.AddressException;
import javax.mail.InternetAddress;
import javax.mail.MessagingException;
import javax.mail.MimeMessage;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;

// ...
        Properties props = new Properties();
        Session session = Session.getDefaultInstance(props, null);

        String msgBody = "...";

        try {
            Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress("admin@example.com"));
            msg.addRecipient(Message.RecipientType.TO,
                             new InternetAddress("user@example.com", "Mr. User"));
            msg.setSubject("Your Example.com account has been activated");
            msg.setText(msgBody);
            Transport.send(msg);
    
        } catch (AddressException e) {
            // ...
        } catch (MessagingException e) {
            // ...
        }

Электронные сообщения

Служба Mail может отправлять электронные сообщения одному или нескольким получателям. Сообщение должно содержать тему и текст, а также может включать в себя дополнительное HTML-содержание. Кроме того, к нему можно прикреплять файловые вложения.

В целях безопасности адрес отправителя сообщения должен быть адресом электронной почты администратора приложения или адресом аккаунта Google текущего пользователя, выполнившего вход. Адрес электронной почты может включать ответный адрес, который должен удовлетворять ряду ограничений.

Чтобы отправить электронное сообщение от имени приложения, но при этом не использовать в качестве отправителя персональный аккаунт Google администратора, создайте новый аккаунт Google для приложения, используя любой действительный адрес электронной почты, а затем добавьте его в качестве администратора приложения. Добавить аккаунт в качестве администратора можно в разделе "Разработчики" Консоли администрирования.

В качестве получателей можно указывать любые адреса электронной почты. Получателя сообщения можно указать в поле "Кому" или "Копия" или скрыть из его заголовка ("слепая копия" или "СК").

Вложения

Сообщение может содержать файловые вложения.

У вложения есть название и данные. Файловые данные могут быть из любого источника, например из файла данных приложения или из хранилища данных. Тип MIME приложения определяется по названию файла.

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

Ниже представлен список типов MIME и соответствующих расширений файлов, допустимых для файловых вложений в электронные сообщения.

Тип MIMEРасширения файлов
image/x-ms-bmpbmp
text/csscss
text/comma-separated-valuescsv
image/gifgif
text/htmlhtm html
image/jpegjpeg jpg jpe
application/pdfpdf
image/pngpng
application/rss+xmlrss
text/plaintext txt asc diff pot
image/tifftiff tif
image/vnd.wap.wbmpwbmp
text/calendarics
text/x-vcardvcf

Отправка почты

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

Если эта служба не может доставить сообщение или оно возвращается с почтового сервера получателя (например, если для этого адреса нет аккаунта в системе), на адрес отправителя отправляется сообщение об ошибке. Приложение не получает уведомление о том, доставлено ли сообщение.

Служба Mail и сервер разработки

При вызове службы Mail приложением, которое выполняется на сервере разработки, для отправки электронного сообщения, оно записывается в журнал. Сервер разработки Java не поддерживает отправку сообщений по электронной почте.

Квоты и ограничения

Каждый запрос к службе Mail учитывается относительно квоты вызовов API Mail.

Каждый адрес получателя электронного сообщения учитывается относительно квоты получателей, которым отправлены сообщения (регулируется). Каждый получатель электронного сообщения, являющийся администратором, учитывается относительно квоты администраторов, которым отправлены сообщения.

Данные, отправленные в теле электронного сообщения, учитываются относительно следующих квот:

  • Исходящий трафик (регулируется)
  • Данные, отправленные в тексте сообщения

Каждое вложение в электронное сообщение учитывается относительно квоты отправленных вложений.

Данные, отправленные во вложении электронного сообщения, учитываются относительно следующих квот:

  • Исходящий трафик (регулируется)
  • Данные, отправленные во вложении

Подробнее о квотах рассказано в разделе Квоты и в разделе Консоли администрирования "Сведения о квотах".

Помимо квот, к использованию службы Mail применяются следующие ограничения:

Ограничение Величина
Максимальный размер сообщения, включая вложения 1 мегабайт
Максимальный размер сообщения получателю, являющемуся администратором 16 килобайт