public int hashCode() {
   int result = from != null ? from.hashCode() : 0;
   result = 31 * result + (to != null ? to.hashCode() : 0);
   result = 31 * result + (subject != null ? subject.hashCode() : 0);
   result = 31 * result + (replyTo != null ? replyTo.hashCode() : 0);
   result = 31 * result + (cc != null ? cc.hashCode() : 0);
   result = 31 * result + (htmlBody != null ? htmlBody.hashCode() : 0);
   result = 31 * result + (textBody != null ? textBody.hashCode() : 0);
   result = 31 * result + (tag != null ? tag.hashCode() : 0);
   result = 31 * result + (headers != null ? headers.hashCode() : 0);
   return result;
 }
  public boolean equals(Object o) {
    if (this == o) return true;
    if (!(o instanceof PostmarkMessage)) return false;

    PostmarkMessage message = (PostmarkMessage) o;

    return !(cc != null ? !cc.equals(message.cc) : message.cc != null)
        && !(from != null ? !from.equals(message.from) : message.from != null)
        && !(headers != null ? !headers.equals(message.headers) : message.headers != null)
        && !(htmlBody != null ? !htmlBody.equals(message.htmlBody) : message.htmlBody != null)
        && !(replyTo != null ? !replyTo.equals(message.replyTo) : message.replyTo != null)
        && !(subject != null ? !subject.equals(message.subject) : message.subject != null)
        && !(tag != null ? !tag.equals(message.tag) : message.tag != null)
        && !(textBody != null ? !textBody.equals(message.textBody) : message.textBody != null)
        && !(to != null ? !to.equals(message.to) : message.to != null);
  }