Estou tentando tratar um erro no java(org.apache.commons.mail.EmailException: javax.mail.internet.AddressException: Missing final '@domain' in string ``gpsnet.com.br''
)
porém ele não me permite que eu faça isso, a mensagem que me aparece do java é esta:
Eu ja tentei por AddressException EmailExcpetion e nenhum funciona… Se alguém souber o que eu puder fazer.;
Posta o StackTrace dessa exceção, quem lançou ela?
Posta também o seu código.
out 08, 2020 8:35:54 AM projetoamalfi.business.SendMail send
GRAVE: null
org.apache.commons.mail.EmailException: javax.mail.internet.AddressException: Missing final '@domain' in string ``www.acillajeado.org.br''
at org.apache.commons.mail.Email.createInternetAddress(Email.java:1974)
at org.apache.commons.mail.Email.addTo(Email.java:846)
at org.apache.commons.mail.Email.addTo(Email.java:829)
at org.apache.commons.mail.Email.addTo(Email.java:778)
at projetoamalfi.business.SendMail.send(SendMail.java:35)
at projetoamalfi.view.TelaEmail.bt_enviarActionPerformed(TelaEmail.java:215)
at projetoamalfi.view.TelaEmail.access$100(TelaEmail.java:24)
at projetoamalfi.view.TelaEmail$2.actionPerformed(TelaEmail.java:90)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: javax.mail.internet.AddressException: Missing final '@domain' in string ``www.acillajeado.org.br''
at javax.mail.internet.InternetAddress.checkAddress(InternetAddress.java:1388)
at javax.mail.internet.InternetAddress.validate(InternetAddress.java:1253)
at org.apache.commons.mail.Email.createInternetAddress(Email.java:1970)
... 43 more
private void bt_enviarActionPerformed(java.awt.event.ActionEvent evt) {
try {
SendMail email = new SendMail();
email.send(arq.getAbsolutePath(),arq.getName(),tf_destino.getText());
} catch (NullPointerException erro) {
JOptionPane.showMessageDialog(null, "Favor selecionar um arquivo a ser enviado" +erro);
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package projetoamalfi.business;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;
/**
*
* @author Marcelo
*/
public class SendMail {
public void send(String caminho,String nome_arquivo, String endereco){
MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.gmail.com");
email.setSslSmtpPort("465");
email.setStartTLSRequired(true);
email.setStartTLSEnabled(true);
email.setSSLOnConnect(true);
email.setAuthenticator(new DefaultAuthenticator("pedro.darde@universo.univates.br","minhasenha"));
try{
email.setFrom("pedro.darde@universo.univates.br");
email.setSubject(" APRESENTAÇÃO EMPRESA AMALFI " );
email.setMsg(" ");
email.addTo(endereco);
EmailAttachment attachament = new EmailAttachment();
attachament.setPath(caminho);
attachament.setDisposition(EmailAttachment.ATTACHMENT);
//attachament.setDescription(desc_arquivo);
attachament.setName(nome_arquivo);
email.attach(attachament);
email.send();
JOptionPane.showMessageDialog(null, "O Email foi enviado para " +endereco + " com sucesso" );
} catch (EmailException ex) {
Logger.getLogger(SendMail.class.getName()).log(Level.SEVERE, null, ex);
}
catch(NullPointerException erro){
JOptionPane.showMessageDialog(null, "Favor selecionar um arquivo a ser enviado" +erro);
}
}
}
Essas sãos as classes que utilizo, uma é um JButton responsavel pelo envio de emails e a outra é a classe que faz a lógicado envio.

Você tentou tratar o EmailException nesse método:
private void bt_enviarActionPerformed(java.awt.event.ActionEvent evt) {
try{
SendMail email = new SendMail();
email.send(arq.getAbsolutePath(),arq.getName(),tf_destino.getText());
} catch(NullPointerException erro){
JOptionPane.showMessageDialog(null, "Favor selecionar um arquivo a ser enviado" +erro);
} catch(EmailException ee){ // na sua imagem, você estava tentando pôr o catch de EmailException aqui
}
}
Isso não vai funcionar pois o método send da sua classe SendMail não tem o throws EmailException, aliás, ela já está fazendo o catch de EmailException, veja:
public class SendMail {
public void send(String caminho,String nome_arquivo, String endereco){
MultiPartEmail email = new MultiPartEmail();
email.setHostName(“smtp.gmail.com”);
email.setSslSmtpPort(“465”);
email.setStartTLSRequired(true);
email.setStartTLSEnabled(true);
email.setSSLOnConnect(true);
email.setAuthenticator(new DefaultAuthenticator(“pedro.darde@universo.univates.br”,“minhasenha”));
try{
email.setFrom(“pedro.darde@universo.univates.br”);
email.setSubject(" APRESENTAÇÃO EMPRESA AMALFI " );
email.setMsg(" ");
email.addTo(endereco);
EmailAttachment attachament = new EmailAttachment();
attachament.setPath(caminho);
attachament.setDisposition(EmailAttachment.ATTACHMENT);
//attachament.setDescription(desc_arquivo);
attachament.setName(nome_arquivo);
email.attach(attachament);
email.send();
JOptionPane.showMessageDialog(null, "O Email foi enviado para " +endereco + " com sucesso" );
} catch (EmailException ex) { // você já está tratando aqui
Logger.getLogger(SendMail.class.getName()).log(Level.SEVERE, null, ex);
}
catch(NullPointerException erro){
JOptionPane.showMessageDialog(null, “Favor selecionar um arquivo a ser enviado” +erro);
}
}
}
Se você quer tratar essa exceção fora do método send, reescreva ele da seguinte forma:
public class SendMail {
public void send(String caminho,String nome_arquivo, String endereco) throws EmailException { // tira o catch e adiciona o throws
MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.gmail.com");
email.setSslSmtpPort("465");
email.setStartTLSRequired(true);
email.setStartTLSEnabled(true);
email.setSSLOnConnect(true);
email.setAuthenticator(new DefaultAuthenticator("pedro.darde@universo.univates.br","minhasenha"));
try {
email.setFrom("pedro.darde@universo.univates.br");
email.setSubject(" APRESENTAÇÃO EMPRESA AMALFI " );
email.setMsg(" ");
email.addTo(endereco);
EmailAttachment attachament = new EmailAttachment();
attachament.setPath(caminho);
attachament.setDisposition(EmailAttachment.ATTACHMENT);
//attachament.setDescription(desc_arquivo);
attachament.setName(nome_arquivo);
email.attach(attachament);
email.send();
JOptionPane.showMessageDialog(null, "O Email foi enviado para " + endereco + " com sucesso" );
} catch (NullPointerException erro) { // sacanagem tratar NPE, deveria validar os parâmetros e lançar exceção se não são válidos
JOptionPane.showMessageDialog(null, "Favor selecionar um arquivo a ser enviado" + erro); // aqui é lugar de mostrar um JOptionPane?
}
}
}
o throws não seria no método ?
Sim, eu havia feito ctrl + c, ctrl + v no lugar errado.
Já arrumei o post.
public void send(String caminho,String nome_arquivo, String endereco) throws EmailException,AddressException{
MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.gmail.com");
email.setSslSmtpPort("465");
email.setStartTLSRequired(true);
email.setStartTLSEnabled(true);
email.setSSLOnConnect(true);
email.setAuthenticator(new DefaultAuthenticator("pedro.darde@universo.univates.br","Pedrobala123"));
email.setFrom("pedro.darde@universo.univates.br");
email.setSubject(" APRESENTAÇÃO EMPRESA AMALFI " );
email.setMsg(" ");
email.addTo(endereco);
EmailAttachment attachament = new EmailAttachment();
attachament.setPath(caminho);
attachament.setDisposition(EmailAttachment.ATTACHMENT);
//attachament.setDescription(desc_arquivo);
attachament.setName(nome_arquivo);
email.attach(attachament);
email.send();
JOptionPane.showMessageDialog(null, "O Email foi enviado para " +endereco + " com sucesso" );
private void bt_enviarActionPerformed(java.awt.event.ActionEvent evt) {
try{
SendMail email = new SendMail();
try {
email.send(arq.getAbsolutePath(),arq.getName(),tf_destino.getText());
} catch (EmailException | AddressException ex ) {
Logger.getLogger(TelaEmail.class.getName()).log(Level.SEVERE, null, ex);
}
}catch(NullPointerException erro){
JOptionPane.showMessageDialog(null, "Favor selecionar um arquivo a ser enviado" +erro);
}
}
Ta ai o meu codigo mudei como tu comentou mas o mesmo erro continua… a mesma mensagem da de cima