Se utilizar a API JavaMail fornecida pela Sun, pode obter a API mais recente em Sun Downloads.
O JavaMail utiliza propriedades para carregar toda a configuração do programa.
É necessário especificar:
# O nome do anfitrião ou o endereço IP do seu servidor SMTP
mail.smtp.host=smtp.duke.java.sun.com
# Obtém-se muita informação de depuração se
# esta opção está activada. Comente esta linha para ativar
# desligado.
mail.debug=verdadeiro
# O endereço de correio eletrónico para
ttapr2004.to=duke@duke.java.sun.com
# O endereço de correio eletrónico De
ttapr2004.from=duke@j2ee_fanclub.java.su…
Pode ligar-se facilmente sem autenticação ao servidor SMTP. Mas pode acontecer que não consiga enviar correio eletrónico a partir do seu programa java:
1. O seu ip pode estar bloqueado pela firewall para Aceder ao servidor SMTP
2. O seu servidor SMTP bloqueia o endereço do remetente, o endereço de destino e talvez o seu ip.
3. O seu servidor SMTP requer autenticação
Se o seu servidor necessitar de autenticação, isto pode ser obtido na Internet
-------------...
public class SendMailUsingAuthentication {
private static final String SMTP_HOST_NAME = "myserver.smtphost.com";
private static final String SMTP_AUTH_USER = "myusername";
private static final String SMTP_AUTH_PWD = "mypwd";
private static final String emailMsgTxt =
"Mensagem de confirmação da encomenda online. Incluir também o número de rastreio";
private static final String emailSubjectTxt = "Assunto da confirmação da encomenda";
private static final String emailFromAddress = "sudhir@javacommerce.com";
// Adicionar lista de endereços de correio eletrónico para quem o correio eletrónico deve ser enviado
private static final String[] emailList = {
"mark@yahoo.com", "robin@javacommerce.com"};
public static void main(String args[]) throws Exception {
SendMailUsingAuthentication smtpMailSender = new
SendMailUsingAuthentication();
smtpMailSender.postMail(emailList, emailSubjectTxt, emailMsgTxt,
emailFromAddress);
System.out.println("Correio enviado com êxito para todos os utilizadores");
}
public void postMail(String recipients[], String subject,
String message, String from) throws MessagingException {
booleano debug = false;
/Definir o endereço smtp do anfitrião
Propriedades props = new Propriedades();
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.auth", "true");
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getDefaultInstance(props, auth);
session.setDebug(debug);
// criar uma mensagem
Message msg = new MimeMessage(session);
// definir o endereço de e para
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipientes.comprimento; i++) {
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.... addressTo);
// Definir o assunto e o tipo de conteúdo
msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport.send(msg);
}
/**
* O SimpleAuthenticator é utilizado para efetuar uma autenticação simples
* quando o servidor SMTP o exigir.
*/
classe privada SMTPAuthenticator
extends javax.mail.Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
String username = SMTP_AUTH_USER;
String password = SMTP_AUTH_PWD;
return new PasswordAuthentication(nome de utilizador, palavra-passe);
}
}
}
-------------...
Isenção de responsabilidade - As opiniões expressas neste artigo são fornecidas por terceiros e podem não corresponder às do nosso sítio Web
