Я пытаюсь отправить электронное письмо из оригинального скрипта. Я дал код ниже:groovy.lang.GroovyRuntimeException при отправке электронной почты
import org.apache.commons.net.smtp.*
port = 25
org = 'mycompany.org'
client = new SMTPClient()
client.connect('<server_name>', port)
client.login()
// set sender and recipient
client.sender = "<email_address>"
client.addRecipient("<email_address>")
// create and send header information
header = new SimpleSMTPHeader("<email_address>",
"<email_address>", 'Successful build')
header.addCC("<email_address>")
header.addHeaderField('Organization', org)
writer = new PrintWriter(client.sendMessageData())
writer << header
// send body of message
writer << 'Successful build for ' + new Date()
writer.close()
client.logout()
client.disconnect()
fixture.assertEmailArrived(from: "[email protected]$org",
subject: 'Successful build')
Я использую сервера Apache Commons-нетто-2.0.jar для запуска кода. Сообщение об ошибке, как показано ниже:
Caught: groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.io.PrintWriter#<init>.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.String]
[class java.io.File]
[class java.io.Writer]
[class java.io.OutputStream]
groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.io.PrintWriter#<init>.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.String]
[class java.io.File]
[class java.io.Writer]
[class java.io.OutputStream]
at TestEmail.run(TestEmail.groovy:20)
ошибка, кажется, исходит из этой части кода:
writer = new PrintWriter(client.sendMessageData())
Я попытался распечатать client.sendMessageData() и значение выходит как null. В идеале это должно быть какое-то значение, обозначающее объект Writer. Пожалуйста, помогите мне решить проблему.
Не нужна аутентификация? Каков результат вызова метода login? – Opal
Я считаю, что он работает. Я попытался распечатать его с помощью кода 'System.out << client.login()' и он выдает «true». Поэтому я решил, что он должен работать. Когда я печатаю 'client.sendMessageData()', я получаю нуль. –