Ho modificato la classe per adeguarla a GMail (in particolare l'uso della SSL e della porta non standard)...ma niente da fare. Non invia niente per time-out infatti dice
Could not connect to SMTP host: smtp.gmail.com, port: 465;
Ecco la classe (senza i miei dati di accesso però
):
Codice PHP:
import java.security.Security;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class SimpleMail {
private String mailhost = "smtp.gmail.com";
public synchronized void sendMail(String subject, String body,
String sender, String recipients) throws Exception {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", mailhost);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.quitwait", "false");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("myAccount@gmail.com",
"myPassword");
}
});
MimeMessage message = new MimeMessage(session);
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setContent(body, "text/plain");
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO, InternetAddress
.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO, new InternetAddress(
recipients));
Transport.send(message);
}
public static void main(String args[]) throws Exception {
SimpleMail sm = new SimpleMail();
sm.sendMail("mySubject", "myBody", "mySender@gmail.com", "myRecipients@its.na.it");
}
}
Qualche suggerimento?
PS: Io cmq non riesco a capire una cosa...io l'account gmail non ce l'ho configurato nel mio client di posta, bensì leggo le email con GMail dal Web. Ma come fa questo programma a collegarsi a GMail? Semplicemente attraverso il server smtp? Cioè che fa va su internet e cerca questo server e prova a loggarsi? :master: