package org.gcube.applicationsupportlayer.social.mailing; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Date; import java.util.Properties; import javax.mail.Address; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import org.gcube.portal.custom.communitymanager.OrganizationsUtil; import org.gcube.portal.databook.shared.Notification; import org.gcube.portal.databook.shared.NotificationType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.liferay.portal.model.UserModel; import com.liferay.portal.service.UserLocalServiceUtil; import com.liferay.portal.util.PortalUtil; /** * * @author Massimiliano Assante * */ public class EmailPlugin { private static final Logger _log = LoggerFactory.getLogger(EmailPlugin.class); private static String getHTMLEmail(Notification notification2Save, String userFirstName, String portalURL, String email) { String removedMarkup = notification2Save.getDescription().replaceAll("&", "&"); removedMarkup = removedMarkup.replaceAll(">", ">"); removedMarkup = removedMarkup.replaceAll("<", "<"); String sender = notification2Save.getSenderFullName(); if (notification2Save.getType() == NotificationType.DOCUMENT_WORKFLOW_STEP_REQUEST_TASK) sender = ""; String portalHost = portalURL.replaceAll("https://", ""); portalHost = portalHost.replaceAll("http://", ""); StringBuilder body = new StringBuilder(); body.append("
") .append("
") .append("Dear ").append(userFirstName).append(",") //dear .append("

").append(sender).append(" ").append(removedMarkup) // has done something .append(getActionLink(notification2Save, portalURL)).append("

") //Goto .append("

") .append("

") .append("This message was sent to ").append(email).append(" by ") .append("").append(portalHost) .append(". ") .append(" If you don't want to receive these emails in the future, please unsubscribe.") .append("

") .append("

") .append("WARNING / LEGAL TEXT: This message is intended only for the use of the individual or entity to which it is addressed and may contain") .append("information which is privileged, confidential, proprietary, or exempt from disclosure under applicable law. If you are not the intended recipient or the person responsible for delivering the message to the intended recipient, you are strictly prohibited from disclosing, distributing, copying, or in any way using this message.") .append("If you have received this communication in error, please notify the and destroy and delete any copies you may have received.") .append("

") .append(""); return body.toString(); } private static String getActionLink(Notification notification2Save, String portalURL) { StringBuilder actionLink = new StringBuilder(".").append(" See the Post").append(""); break; case COMMENT: actionLink.append("\">.").append(" See the Post").append(""); break; case MENTION: actionLink.append("\">.").append(" See the Post").append(""); break; case MESSAGE: actionLink.append("\">.").append(" Go to Message").append(""); break; case WP_FOLDER_ADDEDUSER: actionLink.append("\">.").append(" Go to Folder").append(""); break; case WP_FOLDER_REMOVEDUSER: actionLink.append("\">.").append(" Go to Folder").append(""); break; case WP_FOLDER_SHARE: actionLink.append("\">.").append(" Go to Folder").append(""); break; case WP_ITEM_NEW: actionLink.append("\">.").append(" Go to Folder").append(""); break; case WP_ITEM_DELETE: actionLink.append("\">.").append(" Go to Folder").append(""); break; case WP_ITEM_UPDATED: actionLink.append("\">.").append(" Go to Folder").append(""); break; case OWN_COMMENT: actionLink.append("\">.").append(" See the Post").append(""); break; case POST_ALERT: actionLink.append("\">").append("See this News").append(""); break; case REQUEST_CONNECTION: actionLink.append("\">.").append(" Go to Contacts Center").append(""); break; case JOB_COMPLETED_NOK: actionLink.append("\">.").append(" Go to Application").append(""); break; case JOB_COMPLETED_OK: actionLink.append("\">.").append(" Go to Application").append(""); break; case DOCUMENT_WORKFLOW_EDIT: actionLink.append("\">.").append(" Go to Document Workflow Manager").append(""); break; case DOCUMENT_WORKFLOW_VIEW: actionLink.append("\">.").append(" Go to Document Workflow Manager").append(""); break; case DOCUMENT_WORKFLOW_STEP_REQUEST_TASK: actionLink.append("\">.").append(" Go to Your Document Workflows").append(""); break; case DOCUMENT_WORKFLOW_FIRST_STEP_REQUEST_INVOLVMENT: actionLink.append("\">.").append(" Go to Your Document Workflows").append(""); break; case DOCUMENT_WORKFLOW_USER_FORWARD_TO_OWNER: actionLink.append("\">.").append(" Go to Document Workflow Manager").append(""); break; case DOCUMENT_WORKFLOW_STEP_FORWARD_PEER: actionLink.append("\">.").append(" Go to Document Workflow Manager").append(""); break; case DOCUMENT_WORKFLOW_FORWARD_STEP_COMPLETED_OWNER: actionLink.append("\">.").append(" Go to Document Workflow Manager").append(""); break; case CALENDAR_ADDED_EVENT: actionLink.append("\">.").append(" Go to Calendar").append(""); break; case CALENDAR_UPDATED_EVENT: actionLink.append("\">.").append(" Go to Calendar").append(""); break; case CALENDAR_DELETED_EVENT: actionLink.append("\">.").append(" Go to Calendar").append(""); break; default: actionLink.append("\">.").append("").append(""); break; } return actionLink.toString(); } }