Class OutgoingEmail
- java.lang.Object
-
- com.google.gerrit.server.mail.send.OutgoingEmail
-
- Direct Known Subclasses:
AddKeySender
,DeleteKeySender
,HttpPasswordUpdateSender
,InboundEmailRejectionSender
,NotificationEmail
,RegisterNewEmailSender
public abstract class OutgoingEmail extends Object
Sends an email to one or more interested parties.
-
-
Field Summary
Fields Modifier and Type Field Description protected EmailArguments
args
protected List<String>
footers
protected Account.Id
fromId
protected String
messageClass
protected NotifyResolver.Result
notify
protected Map<String,Object>
soyContext
protected Map<String,Object>
soyContextEmailData
-
Constructor Summary
Constructors Modifier Constructor Description protected
OutgoingEmail(EmailArguments args, String messageClass)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
add(RecipientType rt, Account.Id to)
Schedule delivery of this message to the given account.protected void
add(RecipientType rt, Account.Id to, boolean override)
protected void
add(RecipientType rt, Address addr)
Schedule delivery of this message to the given account.protected void
add(RecipientType rt, Address addr, boolean override)
protected void
add(RecipientType rt, UserIdentity who)
protected void
add(RecipientType rt, UserIdentity who, boolean override)
protected void
add(RecipientType rt, Collection<Account.Id> list)
Schedule this message for delivery to the listed accounts.protected void
add(RecipientType rt, Collection<Account.Id> list, boolean override)
Schedule this message for delivery to the listed accounts.protected void
addByEmail(RecipientType rt, Collection<Address> list)
Schedule this message for delivery to the listed address.protected void
addByEmail(RecipientType rt, Collection<Address> list, boolean override)
Schedule this message for delivery to the listed address.protected void
appendHtml(String html)
Append html to the outgoing email body.protected void
appendText(String text)
Append text to the outgoing email body.protected abstract void
format()
Format the message body by callingappendText(String)
.protected String
getFromLine()
String
getGerritHost()
protected String
getNameEmailFor(Account.Id accountId)
Gets the human readable name and email for an account; if neither are available, returns the Anonymous Coward name.protected String
getNameFor(Account.Id accountId)
Lookup a human readable name for an account, usually the "full name".String
getSettingsUrl()
protected String
getUserNameEmailFor(Account.Id accountId)
Gets the human readable name and email for an account; if both are unavailable, returns the username.protected void
init()
Setup the message headers and envelope (TO, CC, BCC).protected boolean
isVisibleTo(Account.Id to)
protected void
removeHeader(String name)
Remove a header from the outgoing message.protected void
removeUser(Account user)
void
send()
Format and enqueue the message for delivery.void
setFrom(Account.Id id)
protected void
setHeader(String name, String value)
Set a header in the outgoing message.protected void
setHeader(String name, Date date)
void
setMessageId(MessageIdGenerator.MessageId messageId)
void
setNotify(NotifyResolver.Result notify)
protected void
setupSoyContext()
protected boolean
shouldSendMessage()
protected String
soyHtmlTemplate(String name)
Renders a soy template of kind="html".protected String
textTemplate(String name)
Renders a soy template of kind="text".protected boolean
useHtml()
-
-
-
Field Detail
-
messageClass
protected String messageClass
-
args
protected final EmailArguments args
-
fromId
protected Account.Id fromId
-
notify
protected NotifyResolver.Result notify
-
-
Constructor Detail
-
OutgoingEmail
protected OutgoingEmail(EmailArguments args, String messageClass)
-
-
Method Detail
-
setFrom
public void setFrom(Account.Id id)
-
setNotify
public void setNotify(NotifyResolver.Result notify)
-
setMessageId
public void setMessageId(MessageIdGenerator.MessageId messageId)
-
send
public void send() throws com.google.gerrit.exceptions.EmailException
Format and enqueue the message for delivery.- Throws:
com.google.gerrit.exceptions.EmailException
-
format
protected abstract void format() throws com.google.gerrit.exceptions.EmailException
Format the message body by callingappendText(String)
.- Throws:
com.google.gerrit.exceptions.EmailException
-
init
protected void init() throws com.google.gerrit.exceptions.EmailException
Setup the message headers and envelope (TO, CC, BCC).- Throws:
com.google.gerrit.exceptions.EmailException
- if an error occurred.
-
getFromLine
protected String getFromLine()
-
getGerritHost
public String getGerritHost()
-
getSettingsUrl
public String getSettingsUrl()
-
setHeader
protected void setHeader(String name, String value)
Set a header in the outgoing message.
-
removeHeader
protected void removeHeader(String name)
Remove a header from the outgoing message.
-
appendText
protected void appendText(String text)
Append text to the outgoing email body.
-
appendHtml
protected void appendHtml(String html)
Append html to the outgoing email body.
-
getNameFor
protected String getNameFor(Account.Id accountId)
Lookup a human readable name for an account, usually the "full name".
-
getNameEmailFor
protected String getNameEmailFor(Account.Id accountId)
Gets the human readable name and email for an account; if neither are available, returns the Anonymous Coward name.- Parameters:
accountId
- user to fetch.- Returns:
- name/email of account, or Anonymous Coward if unset.
-
getUserNameEmailFor
protected String getUserNameEmailFor(Account.Id accountId)
Gets the human readable name and email for an account; if both are unavailable, returns the username. If no username is set, this function returns null.- Parameters:
accountId
- user to fetch.- Returns:
- name/email of account, username, or null if unset or the accountId is null.
-
shouldSendMessage
protected boolean shouldSendMessage()
-
add
protected void add(RecipientType rt, Collection<Account.Id> list)
Schedule this message for delivery to the listed accounts.
-
add
protected void add(RecipientType rt, Collection<Account.Id> list, boolean override)
Schedule this message for delivery to the listed accounts.
-
addByEmail
protected void addByEmail(RecipientType rt, Collection<Address> list)
Schedule this message for delivery to the listed address.
-
addByEmail
protected void addByEmail(RecipientType rt, Collection<Address> list, boolean override)
Schedule this message for delivery to the listed address.
-
add
protected void add(RecipientType rt, UserIdentity who)
-
add
protected void add(RecipientType rt, UserIdentity who, boolean override)
-
add
protected void add(RecipientType rt, Account.Id to)
Schedule delivery of this message to the given account.
-
add
protected void add(RecipientType rt, Account.Id to, boolean override)
-
isVisibleTo
protected boolean isVisibleTo(Account.Id to) throws PermissionBackendException
- Parameters:
to
- account.- Returns:
- whether this email is visible to the given account.
- Throws:
PermissionBackendException
-
add
protected void add(RecipientType rt, Address addr)
Schedule delivery of this message to the given account.
-
add
protected void add(RecipientType rt, Address addr, boolean override)
-
setupSoyContext
protected void setupSoyContext()
-
soyHtmlTemplate
protected String soyHtmlTemplate(String name)
Renders a soy template of kind="html".
-
removeUser
protected void removeUser(Account user)
-
useHtml
protected final boolean useHtml()
-
-