Hello All,
I have a custom field(RequerterEmail) in the issue.
I created this field because many of these users are external, they don't have access to my company's jira. They are external customers. That's why I didn't use the userpicker field.
Therefore, I would like to send email to them whenever the request for this was created and closed.
I can't get the field value (RequerterEmail) and send the email.
My code is this:
Can anyone help me?
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.mail.Email
import com.atlassian.jira.mail.settings.MailSettings
import com.atlassian.mail.MailException
import com.atlassian.mail.server.SMTPMailServer
import com.atlassian.plugin.util.ContextClassLoaderSwitchingUtil
import org.apache.log4j.Level
import org.apache.log4j.Logger
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.fields.CustomField
String sendEmail(String emailAddr, String subject, String body) {
def logger = Logger.getLogger(getClass())
logger.setLevel(Level.DEBUG)
// Stop emails being sent if the outgoing mail server gets disabled (useful if you start a script sending emails and need to stop it)
def mailSettings = ComponentAccessor.getComponent(MailSettings)
if (mailSettings?.send()?.disabled) {
return 'Your outgoing mail server has been disabled'
}
def mailServer = ComponentAccessor.mailServerManager.defaultSMTPMailServer
if (!mailServer) {
logger.debug('Your mail server Object is Null, make sure to set the SMTP Mail Server Settings Correctly on your Server')
return 'Failed to Send Mail. No SMTP Mail Server Defined'
}
def email = new Email(emailAddr)
email.setMimeType('text/html')
email.setSubject(subject)
email.setBody(body)
try {
// This is needed to avoid the exception about IMAPProvider
ContextClassLoaderSwitchingUtil.runInContext(SMTPMailServer.classLoader) {
mailServer.send(email)
}
logger.debug('Mail sent')
'Success'
} catch (MailException e) {
logger.debug("Send mail failed with error: ${e.message}")
'Failed to Send Mail, Check Logs for error'
}
}
//sendEmail('user@email.com', '<Your subject here>', '<Your body here>')
def RequesterEmail = 12601 as Long
//def issue = issue as MutableIssue
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def UserEmailCustomField = CustomFieldManager.getCustomFieldObject(RequesterEmail)
def UserEmailValue = issue.getCustomFieldValue(UserEmailCustomField)
//def user_semail = com.atlassian.jira.component.ComponentAccessor.getCustomFieldValue(12601)
//return(UserEmailValue)