Erro ao enviar email

2 respostas
B

Pessoal onde há erro neste código pra mandar email?
eu não estou usando um servidor local, como vcs estão vendo(props.put(… …)), mas sempre da erro falando que o servidor localhost recusou a conexão… Mas como eu já disse eu não quero usar o servidor smtp local.

//Set the host smtp address
        Properties props = new Properties();
        props.put("mail.empresa.com.br", "192.168.0.3");
        
        Session session = Session.getDefaultInstance(props, null);
        session.setDebug(false);
        MimeMessage msg = new MimeMessage(session);
        
        

        try {
            // "de" e "para"!!
            msg.setFrom(new InternetAddress(emailSender));
            msg.setRecipient(Message.RecipientType.TO, new InternetAddress(emailReceiver));

            // nao esqueca da data!
            msg.setSentDate(new Date());

            msg.setSubject(assunto);

            msg.setText(mensagem);
            // evniando mensagem (tentando)

            Transport.send( msg);
            Thread.sleep(10);
        } catch (AddressException e) {
            // nunca deixe catches vazios!
            JOptionPane.showMessageDialog(null, "Erro no endereço: " + e.toString());
        } catch (MessagingException e) {
            // nunca deixe catches vazios!
            JOptionPane.showMessageDialog(null, "Erro de mensagem: " + e.toString());
        } catch (Exception e) {
            // nunca deixe catches vazios!
            JOptionPane.showMessageDialog(null, "Erro geral: " + e.toString());
        }

2 Respostas

K
public class Mail {

	private static final String contentType = "text/html";

	/**
	 * Define se o servidor de emails precisa de autenticacao
	 */
	private boolean autenticar;

	/**
	 * Assunto do email
	 */
	private String assunto = "Subject";

	/**
	 * Mensagem do email
	 */
	private String mensagem = "Message";

	/**
	 * Objeto do body do email
	 */
	private BodyPart messageBody = null;

	/**
	 * Anexo do email
	 */
	private MimeBodyPart messageAnexo = null;

	/**
	 * Objeto de email
	 */
	private Multipart multipart = null;

	public Mail(boolean p_autenticar) {
		autenticar = p_autenticar;
	}

	private class SMTPAuthenticator extends Authenticator {
		private String l_usuarioEmail = null;
		private String l_senha = null;

		public SMTPAuthenticator(String p_usuario, String p_senha) {
			l_usuarioEmail = p_usuario;
			l_senha = p_senha;
		}

		public PasswordAuthentication getPasswordAuthentication() {
			return new PasswordAuthentication(l_usuarioEmail, l_senha);
		}
	}

	public void enviarEmail(String[] p_destinatario) {

		// variaveis
		final boolean debug = false;
		boolean l_retorno = true;
		Properties l_properties = new Properties();
		Authenticator l_authenticator = null;
		Session l_session = null;
		Message l_mmg = null;
		Transport l_transport = null;

		try {

			// host e servidor de email
			l_properties.put("mail.smtp.host", "mail.empresa.com.br");

			// se requer autenticação
			if (autenticar) {
				
				// autenticar
				l_properties.put("mail.smtp.auth", "true");

				// senha necessaria se precisar autenticar
				l_authenticator = new SMTPAuthenticator("seusuaurio","suasenha");
			}

			SecurityManager l_security = System.getSecurityManager();
			if (l_security == null)
				l_session = Session.getInstance(l_properties, l_authenticator);
			else
			// pega instancia de session
			l_session = Session.getDefaultInstance(l_properties, l_authenticator);

			// nao depurar
			l_session.setDebug(debug);

			// objeto de Mime
			l_mmg = new MimeMessage(l_session);

			// usuario que envia o email
			l_mmg.setFrom(new InternetAddress("[email removido]"));

			// destinatario
			for (int i = 0; i < p_destinatario.length ;i++) {
				if (i == 0)
	                            l_mmg.setRecipient(Message.RecipientType.TO,new InternetAddress(p_destinatario[i].trim()));
				else
					l_mmg.setRecipient(Message.RecipientType.CC,new InternetAddress(p_destinatario[i].trim()));
			}

			// data
			l_mmg.setSentDate(new Date());

			// assunto
			l_mmg.setSubject("asunto do email");

			// mensagem de email com o tipo HTML
			messageBody = new MimeBodyPart();
			messageBody.setContent("sua mensagem",contentType);

			//cria multipart
			multipart = new MimeMultipart();
			
			// add mensagem na saida do email
			multipart.addBodyPart(messageBody);

			// add multipar ao Mime
			l_mimeMessage.setContent(multipart);

			// sava Mime
			l_mimeMessage.saveChanges();

			// evniando mensagem (tentando)
			l_transport = l_session.getTransport("smtp");
			l_transport.connect("mail.empresa.com.br", "[email removido]", "suasenha");

			l_transport.sendMessage(l_mimeMessage, l_mimeMessage.getAllRecipients());
			
		} catch (AddressException e) {
			e.printStackTrace
		} catch (MessagingException e) {
			e.printStackTrace
		} finally {
			if (l_transport != null) {
				try {
					l_transport.close();
				} catch (MessagingException e) {
					e.printStackTrace
				}
			}
		}
	}
}

abraços

B

vlw fera!!! sua calsse me mostrou que a minha linha:

props.put("mail.empresa.com.br", "192.168.0.3");

estava errada na realidade é

props.put("mail.smtp.host","mail.empresa.com.br");
Criado 28 de fevereiro de 2008
Ultima resposta 28 de fev. de 2008
Respostas 2
Participantes 2