JSON Formatındaki Mesaj ile Mail Atma
import javax.mail.*
import javax.mail.internet.*
import groovy.json.JsonSlurper
import groovy.json.JsonOutput
/*
Request:
{
"gonderen":"bilgi.apinizer",
"alicilar":"info@apinizer.com",
"bilgiAlicilar":null,
"gizliAlicilar":null,
"konu":"test",
"icerik":"test",
"icerikTuru":"text/html;charset=utf-8"
}
Response:
{
"islemBasariliMi":true,
"hataMesaji":"",
"hataKodu":""
}
*/
try {
requestHeaderMapFromClient.put('statusCode',0)
def jsonSlurper = new JsonSlurper()
def jsonMessage = jsonSlurper.parseText(requestBodyTextFromClient)
String from=jsonMessage.gonderen
if(from.equals("bilgi.apinizer")){
from="info@apinizer.com"
}else if(from.equals("apinizer.hata")){
from="warning@apinizer.com"
}
else{
statusCode=400
requestErrorMessageFromClient = JsonOutput.toJson([islemBasariliMi: false, hataMesaji: 'Hatalı gönderen bilgisi', hataKodu:'01-ERR-02'])
return
}
String to=jsonMessage.alicilar
String cc=jsonMessage.bilgiAlicilar
String bcc=jsonMessage.bilgiAlicilar
if(!to?.trim()&& !cc?.trim()&& !bcc?.trim()){
requestErrorMessageFromClient = JsonOutput.toJson([islemBasariliMi: false, hataMesaji: 'En az bir alıcı eklenmeli', hataKodu:'01-ERR-03'])
statusCode=400
return
}
String subject=jsonMessage.konu
if(subject?.trim()){
subject=""
}
String content=jsonMessage.icerik
if(content?.trim()){
content=""
}
String mimeType=jsonMessage.icerikTuru
if(mimeType?.trim()){
mimeType="text/html;charset=utf-8"
}
// Init constants of sender email account.
String email = "apinizer.hata"
String password = ""
String host = "mail.apinizer.com"
String port = "25" // "465" "587"
// Set up properties.
Properties props = System.getProperties()
props.put("mail.smtp.user", email)
props.put("mail.smtp.host", host)
props.put("mail.smtp.port", port)
props.put("mail.smtp.auth", "false")
props.put("mail.smtp.starttls.enable","false")
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory")
props.put("mail.smtp.ssl.trust", host) // Change host to "*" if you want to trust all host.
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(email, password)
}
})
// Set up message.
MimeMessage message = new MimeMessage(session)
message.setFrom(new InternetAddress(from))
if(to?.trim()){
message.addRecipients(Message.RecipientType.TO, new InternetAddress(to))
}
if(cc?.trim()){
message.addRecipients(Message.RecipientType.CC, new InternetAddress(cc))
}
if(bcc?.trim()){
message.addRecipients(Message.RecipientType.BCC, new InternetAddress(bcc))
}
message.setSubject(subject)
message.setContent(content, mimeType)
try {
// Send mail.
Transport.send(message )
} catch (MessagingException e) {
e.printStackTrace()
statusCode=500
requestErrorMessageFromClient = JsonOutput.toJson([islemBasariliMi: false, hataMesaji: 'Mail gönderirken hata oluştu:' + e.getMessage(), hataKodu:'01-ERR-04'])
return
}
statusCode=200
requestErrorMessageFromClient = JsonOutput.toJson([islemBasariliMi: true, hataMesaji: '', hataKodu:''])
} catch (MessagingException e) {
e.printStackTrace()
statusCode=500
requestErrorMessageFromClient = JsonOutput.toJson([islemBasariliMi: false, hataMesaji: 'Mail gönderirken hata oluştu:' + e.getMessage(), hataKodu:'01-ERR-05'])
return
}
GROOVY