Necessary classes
com.liferay.portal.util.SubscriptionSenderYou can send mails programmatically using Liferay-Services. Here is one example:
private void sendMail( long fromUserId, long toUserId, String comment) throws SystemException, PortalException {
User fromUser = UserLocalServiceUtil.getUser(fromUserId);
User toUser = UserLocalServiceUtil.getUser(toUserId);
String fromName = fromUser.getFullName();
String fromAddress = fromUser.getEmailAddress()
String toName = toUser.getFullName();
String toAddress = toUser.getEmailAddress();
String subject = "Example mail-subject";
String body = "Example mail-body. Here is some comment: [$COMMENTS$]";
SubscriptionSender subscriptionSender = new SubscriptionSender();
subscriptionSender.setBody(body);
subscriptionSender.setCompanyId(toUser .getCompanyId());
subscriptionSender.setContextAttributes( "[$COMMENTS$]", comment);
subscriptionSender.setFrom(fromAddress, fromName);
subscriptionSender.setHtmlFormat(true);
subscriptionSender.setMailId("userId", toUserId);
subscriptionSender.setServiceContext(serviceContext);
subscriptionSender.setSubject(subject);
subscriptionSender.setUserId(userId);
subscriptionSender.addRuntimeSubscribers(toAddress, toName);
subscriptionSender.flushNotificationsAsync();
}
As you can see you can use
subscriptionSender.setContextAttributes(Obect...values);to replace placeholders in your mail content.