Hi everybody,
i'm using JIRA as a helpdesk system. In the workflow we have transitions where user can send email with a custom groovyrunner postfunction. In the post function we convert JIRA wiki markup to html. For Right To Left languages (Arabic, etc) we want to alligh text on the right. I have tried some things by the text allignment does not apply.
Thank you in advance
The code i'm using is the following
import javax.mail.internet.*;
import javax.mail.*
import javax.activation.*
import javax.mail.Multipart;
import javax.mail.internet.MimeMultipart;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.ModifiedValue;
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.comments.CommentManager;
import com.atlassian.jira.issue.attachment.Attachment;
import com.atlassian.jira.issue.history.ChangeItemBean;
import com.atlassian.jira.util.AttachmentUtils;
import groovy.text.GStringTemplateEngine;
import com.atlassian.jira.issue.fields.renderer.wiki.AtlassianWikiRenderer;
import com.atlassian.jira.util.velocity.VelocityRequestContextFactory;
import com.atlassian.event.api.EventPublisher;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.security.groups.GroupManager;
//Convert wiki markup to HTML
EventPublisher eventPublisher = ComponentAccessor.getOSGiComponentInstanceOfType(EventPublisher.class);
VelocityRequestContextFactory velocityRequestContextFactory = ComponentAccessor.getOSGiComponentInstanceOfType(VelocityRequestContextFactory.class);
AtlassianWikiRenderer wikiRenderer = new AtlassianWikiRenderer(eventPublisher, velocityRequestContextFactory);
def groupManager = ComponentAccessor.getGroupManager()
def currentUser = componentManager.jiraAuthenticationContext?.user
//Get Comment Manager
CommentManager commentManager = componentManager.getCommentManager();
//Get custom field manager
CustomFieldManager customFieldManager = ComponentManager.getInstance().getCustomFieldManager();
//Get custom field email by id
CustomField customField_email = customFieldManager.getCustomFieldObject( 10205 );
CustomField customField_mtu = customFieldManager.getCustomFieldObject( 11000 );
//get value of customField_email
to = issue.getCustomFieldValue( customField_email )
//get value of customField_mtu
mtu = issue.getCustomFieldValue( customField_mtu ).toString();
//Convert JIRA wiki to HTML
m_t_u = wikiRenderer.render(mtu, null);
//Email Headers
sender="test@test.com"
sendername="Test Test"
//Email acccount credentials
def username="test@test.com"
def password="test"
//Gmail Default port
port = 25
//Email Body
content = """\
<div align="right">
$m_t_u
</div>
"""
//Creat first part of email, Email Body
Multipart mp = new MimeMultipart("mixed");
MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(content.toString(), "text/html; charset=utf-8");
mp.addBodyPart(htmlPart);
//Email Properties
props = new Properties()
props.put("mail.smtp.port", port);
props.put("mail.smtp.socketFactory.fallback", "false");
props.put("mail.smtp.quitwait", "false");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
//New session
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(sender,sendername));
message.setSubject("Title");
message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setContent(mp)
try{
Transport transport = session.getTransport("smtp");
transport.connect( "smtp.gmail.com",port,username,password );
transport.sendMessage(message,message.getAllRecipients());
transport.close();
log.warn ("mail sent sucesfully to : "+ issue.getCustomFieldValue( customField_email).toString() + ", for issue: " + issue.getKey())
}catch (MessagingException mex) {
log.warn ("Could not sent email to : "+ issue.getCustomFieldValue( customField_email).toString() + " for issue: " + issue.getKey())
mex.printStackTrace();
}