syntax = "proto2";
option go_package = "mail";

package appengine;

message MailServiceError {
  enum ErrorCode {
    OK = 0;
    INTERNAL_ERROR = 1;
    BAD_REQUEST = 2;
    UNAUTHORIZED_SENDER = 3;
    INVALID_ATTACHMENT_TYPE = 4;
    INVALID_HEADER_NAME = 5;
    INVALID_CONTENT_ID = 6;
  }
}

message MailAttachment {
  required string FileName = 1;
  required bytes Data = 2;
  optional string ContentID = 3;
}

message MailHeader {
  required string name = 1;
  required string value = 2;
}

message MailMessage {
  required string Sender = 1;
  optional string ReplyTo = 2;

  repeated string To = 3;
  repeated string Cc = 4;
  repeated string Bcc = 5;

  required string Subject = 6;

  optional string TextBody = 7;
  optional string HtmlBody = 8;

  repeated MailAttachment Attachment = 9;

  repeated MailHeader Header = 10;
}