Created
July 20, 2018 21:33
-
-
Save cmaggiulli/11d6062ecbbcd6bc07ca90bf9152dda6 to your computer and use it in GitHub Desktop.
A groovy rabbitmq consumer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Grapes([ | |
@Grab(group='com.rabbitmq', module='amqp-client', version='3.6.5'), | |
@Grab(group = 'com.sun.mail', module = 'javax.mail', version = '1.6.0') | |
]) | |
import com.rabbitmq.client.* | |
import groovy.json.JsonSlurper | |
import javax.mail.Message | |
import javax.mail.Session | |
import javax.mail.Transport | |
import javax.mail.internet.InternetAddress | |
import javax.mail.internet.MimeMessage | |
def factory = new ConnectionFactory() | |
factory.setHost("192.168.5.185") | |
factory.setUsername("test") | |
factory.setPassword("test") | |
def connection = factory.newConnection(); | |
def channel = connection.createChannel(); | |
channel.basicConsume("ESCALATE", true, new DefaultConsumer(channel) { | |
@Override | |
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) { | |
def payload = new String(body, "UTF-8"); | |
println " [x] Received '" + payload + "'" | |
def jsonSlurper = new JsonSlurper() | |
def msg = jsonSlurper.parseText(payload) | |
sendEmail(msg.EMAIL_ADDRESSES, msg.CUSTOMER_SERVICE_EMAIL, msg.HTML_SUBJECT, msg.HTML_BODY) | |
} | |
}) | |
def sendEmail(to, from = "[email protected]", subject, body) { | |
def session = Session.getDefaultInstance(new Properties()) | |
def message = new MimeMessage(session) | |
message.setFrom(from) | |
message.setRecipients(Message.RecipientType.TO, new InternetAddress(to)) | |
message.setSubject(subject) | |
message.setText(body, "utf-8", "html"); | |
def transport = session.getTransport("smtp") | |
transport.connect("email.hostaccount.com", 587, from, "Ex@mple1") | |
transport.sendMessage(message, message.getAllRecipients()) | |
println " [x] Message sent successfully" | |
transport.close() | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment