Witam, skotrzystałem z napisanego kodu do wysyłania maili znajdującego się pod tym adresem:
http://mkorwel.blogspot.com/2010/05/javamail-wysanie-emaila-przy-pomocy.html
pozwole sobie go tu rowniez umiesic :
package com.blogspot.mkorwel.mail;
import java.util.Properties;
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 Mateusz Korwel
*
*/
public class SendMail {
private static final String HOST = "smtp.gmail.com";
private static final int PORT = 465;
// Adres email osby która wysyła maila
private static final String FROM = "[email protected]";
// Hasło do konta osoby która wysyła maila
private static final String PASSWORD = "xxx";
// Adres email osoby do której wysyłany jest mail
private static final String TO = "[email protected]";
// Temat wiadomości
private static final String SUBJECT = "Hello World";
// Treść wiadomości
private static final String CONTENT = "To mój pierwszy mail wysłany za pomocą JavaMailAPI.";
public static void main(String[] args) {
try {
new SendMail().send();
} catch (MessagingException e) {
e.printStackTrace();
}
}
public void send() throws MessagingException {
Properties props = new Properties();
props.put("mail.transport.protocol", "smtps");
props.put("mail.smtps.auth", "true");
// Inicjalizacja sesji
Session mailSession = Session.getDefaultInstance(props);
// ustawienie debagowania, jeśli nie chcesz oglądać logów to usuń
// linijkę poniżej lub zmień wartość na false
mailSession.setDebug(true);
// Tworzenie wiadomości email
MimeMessage message = new MimeMessage(mailSession);
message.setSubject(SUBJECT);
message.setContent(CONTENT, "text/plain; charset=ISO-8859-2");
message.addRecipient(Message.RecipientType.TO, new InternetAddress(TO));
Transport transport = mailSession.getTransport();
transport.connect(HOST, PORT, FROM, PASSWORD);
// wysłanie wiadomości
transport.sendMessage(message, message
.getRecipients(Message.RecipientType.TO));
transport.close();
}
}
Działa ok.
Jednak gry próbuję wysłac maila z innego konta niż gmail, pojawia się błąd.
javax.mail.MessagingException: Could not connect to SMTP host: qmail.ramsat.pl, port: 587;
nested exception is:
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
Przykładowo gdy chce wysłać maila z poczty interii konifguruję następująco:
private static final String HOST = "poczta.interia.pl";
private static final int PORT = 587;
private static final String FROM = "[email protected]";
Być moze chodzi o to ze gmail korzysta z połaczenia SSL ?
Jeśli ktos posiada gotowy protokól do wysyłania maili z innego serwera niż gmail bylbym wdzieczny