Sending mail via script

Hi everyone,

I am trying to send an email inside my test case using Send email using groovy script · GitHub I downloaded the Jar and it looks like there is no error but I get: “There are errors in the script. Please fix before executing”.

The only code in my test case is Send email using groovy script · GitHub

Any ideas?

Can you please share your exact script from katalon - also if there are errors in the script it should give you a little red cross on the line causing this error

Hey,
Here is my script. There are no red lines (or black lines)

import javax.mail.*
import javax.mail.internet.*

/*
 
Get Any JAVAMAIL Dependency
===============================
Download JAVAMAIL dependency that you need.
download JAVAMAIL at : https://maven.java.net/content/repositories/releases/com/sun/mail/javax.mail/1.5.2/javax.mail-1.5.2.jar
To install, copy & paste the *.jar to installed Groovy lib directory:
eg: C:\Program Files (x86)\Groovy\Groovy-2.1.1\lib
 
*/


public class SMTPAuthenticator extends Authenticator
{
	public PasswordAuthentication getPasswordAuthentication()
	{
		return new PasswordAuthentication('my mail', 'my password');
	}
}

def  d_email = "my mail",
	 d_uname = "my mail",
	 d_password = "my password",
	 d_host = "smtp.gmail.com",
	 d_port  = "465", //465,587
	 m_to = "some other mail",
	 m_subject = "Testing",
	 m_text = "Hey, this is the testing email."

def props = new Properties()
props.put("mail.smtp.user", d_email)
props.put("mail.smtp.host", d_host)
props.put("mail.smtp.port", d_port)
props.put("mail.smtp.starttls.enable","true")
props.put("mail.smtp.debug", "true");
props.put("mail.smtp.auth", "true")
props.put("mail.smtp.socketFactory.port", d_port)
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory")
props.put("mail.smtp.socketFactory.fallback", "false")

def auth = new SMTPAuthenticator()
def session = Session.getInstance(props, auth)
session.setDebug(true);

def msg = new MimeMessage(session)
msg.setText(m_text)
msg.setSubject(m_subject)
msg.setFrom(new InternetAddress(d_email))
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(m_to))

Transport transport = session.getTransport("smtps");
transport.connect(d_host, d_port, d_uname, d_password);
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();

Let me know if you want to use an alternative solution with less moving parts.

Hi,
Yeah I will love to see, I just took this to see how to send a mail.

Thanks

@Russ_Thomas and @hpulsford I saw that there is not support for:

```
import javax.mail.*
import javax.mail.internet.*
```

While:

import javax.activation.DataHandler
import com.sun.mail.util.MailLogger
import javax.activation.FileDataSource
import javax.mail.Message
import javax.mail.MessagingException
import javax.mail.Multipart
import javax.mail.Session
import javax.mail.Transport
import javax.mail.internet.InternetAddress
import javax.mail.internet.MimeBodyPart
import javax.mail.internet.MimeMessage
import javax.mail.internet.MimeMultipart

does work… I am still getting a problem that SMTPAuthenticator is not recognized. Do you know why?

No. When I first started using Katalon (Feb 2018) I had problems with the inbuilt email. I stopped trying and used what I’ve already shown you.