Peguei um exemplo q um cara aqui do guj postou. Ele está conectando ao servidor de SMTP normalmente, no entanto na hora de enviar o email dá erro. Segue abaixo o codigo, o erro e também a indicação, no codigo, de onde o erro acontece.
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* @author Lawrence Barbosa
* @version 26/03/2004 - 15:13:24 EnviaEmail.java
*
* Classe generia utilizada para envio de email
*/
public class EnviaEmail extends Authenticator
{
Session session = null;
public void enviaEmail(String bodyEmail, String assunto, String remetente, Address
destTo[], Address destCc[], Address destBcc[], String srvSmtp, String tpEmail, String
user, String passwd, String fileAttach) throws MessagingException
{
try
{
if (!srvSmtp.trim().equalsIgnoreCase(""))
{
// Set the host smtp address
Properties props = new Properties();
props.put("mail.smtp.host", srvSmtp);
// Create some properties and get the default Session
session = session.getInstance(props, null);
// Create a message
Message msg = new MimeMessage(session);
// Remetente
msg.setFrom(new InternetAddress(remetente));
// Destinatario(s)
if (destTo != null)
{
msg.setRecipients(Message.RecipientType.TO, destTo);
}
// Destinatario(s) com Copia
if (destCc != null)
{
msg.setRecipients(Message.RecipientType.CC, destCc);
}
// Destinatario(s) com Copia Oculta
if (destBcc != null)
{
msg.setRecipients(Message.RecipientType.BCC, destBcc);
}
// Assunto da mensagem
msg.setSubject(assunto);
// Verificando tipo de Envio
if (tpEmail.trim().equalsIgnoreCase("HTML"))
{
// Montando corpo da mensagem no formato HTML
msg.setContent(bodyEmail, "text/html");
}
else
{
msg.setText(bodyEmail);
}
if (!fileAttach.trim().equalsIgnoreCase(""))
{
// Envia Arquivo Se nescessario
msg.setFileName(fileAttach);
}
// Adicionando a data atual a mensagem
msg.setSentDate(new Date());
// Enviando mensagem (tentando)
Transport transport = session.getTransport("smtp");
System.out.println("Conectando no servidor de smtp:" + srvSmtp + "...");
transport.connect(srvSmtp, user, passwd);
if (transport.isConnected())
{
System.out.println("Conectado [" + srvSmtp + "]");
System.out.println("Enviando Mensagem...");
transport.sendMessage(msg, destTo); // O ERRO ACONTECE AQUI !!!
System.out.println("Mensagem Enviada!!!");
}
}
}
catch (MessagingException e)
{
e.printStackTrace();
}
}
}
Erro
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first 65sm2234045wra
at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1333)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:906)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:535)
at EnviaEmail.enviaEmail(EnviaEmail.java:97)
at VerificaLog.main(VerificaLog.java:16)