Class SmtpEmailSender

java.lang.Object
com.google.gerrit.server.mail.send.SmtpEmailSender
All Implemented Interfaces:
EmailSender

public class SmtpEmailSender extends Object implements EmailSender
Sends email via a nearby SMTP server.

Doesn't support including EmailResource in the payload.

  • Method Details

    • isEnabled

      public boolean isEnabled()
      Specified by:
      isEnabled in interface EmailSender
    • canEmail

      public boolean canEmail(String address)
      Description copied from interface: EmailSender
      Can the address receive messages from us?
      Specified by:
      canEmail in interface EmailSender
      Parameters:
      address - the address to consider.
      Returns:
      true if this sender will deliver to the address.
    • send

      public void send(Address from, Collection<Address> rcpt, Map<String,EmailHeader> callerHeaders, String body) throws com.google.gerrit.exceptions.EmailException
      Description copied from interface: EmailSender
      Sends an email message with a text body only (i.e. not HTML or multipart).

      Authors of new implementations of this interface should not use this method to send a message because this method does not accept the HTML body. Instead, authors should use the above signature of send.

      This version of the method is preserved for support of legacy implementations.

      Specified by:
      send in interface EmailSender
      Parameters:
      from - who the message is from.
      rcpt - one or more address where the message will be delivered to. This list overrides any To or CC headers in headers.
      callerHeaders - message headers.
      body - text to appear in the body of the message.
      Throws:
      com.google.gerrit.exceptions.EmailException - the message cannot be sent.
    • send

      public void send(Address from, Collection<Address> rcpt, Map<String,EmailHeader> callerHeaders, String textBody, String htmlBody) throws com.google.gerrit.exceptions.EmailException
      Description copied from interface: EmailSender
      Sends an email message. Messages always contain a text body, but messages can optionally include an additional HTML body. If both body types are present, send should construct a multipart/alternative message with an appropriately-selected boundary.
      Specified by:
      send in interface EmailSender
      Parameters:
      from - who the message is from.
      rcpt - one or more address where the message will be delivered to. This list overrides any To or CC headers in headers.
      callerHeaders - message headers.
      textBody - text to appear in the text/plain body of the message.
      htmlBody - optional HTML code to appear in the text/html body of the message.
      Throws:
      com.google.gerrit.exceptions.EmailException - the message cannot be sent.
    • generateMultipartBoundary

      public static String generateMultipartBoundary(String textBody, String htmlBody) throws com.google.gerrit.exceptions.EmailException
      Throws:
      com.google.gerrit.exceptions.EmailException
    • buildMultipartBody

      protected String buildMultipartBody(String boundary, String textPart, String htmlPart) throws IOException
      Throws:
      IOException
    • quotedPrintableEncode

      protected String quotedPrintableEncode(String input) throws IOException
      Throws:
      IOException