Ciao a tutti ,
ho trovato su internet un esempio dove conto gli elementi di una cartella e se cambiano nell'arco di un minuto invio un email.Il problema sta proprio nell'invio dell'email perche mi da il seguente errore :
codice:Error: javax.mail.MessagingException: Connect failed; nested exception is: java.net.ConnectException: Connection timed out: connect
Vi posto anche il codice , dicendovi che vorrei mandare l'email da un indirizzo hotmail.it
grazie a tutti per la disponibilita
import java.io.File;
import java.net.PasswordAuthentication;
import java.util.Arrays;
import java.util.Properties;
import java.util.Vector;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class Email {
public static void postMail( String recipients, String subject,
String message , String from) throws MessagingException {
Properties props = new Properties();
//indicare l'indirizzo del server smtp che si intende usare
props.put("mail.smtp.host","smtp.live.com");
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("pop3");
store.connect("pop3.live.com", "xxxxxxxxx@hotmail.it","xxxxxxxx");
Message msg = new MimeMessage(session);
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
//InternetAddress[] addressTo = new InternetAddress[recipients.length];
/* for (int i = 0; i < recipients.length; i++) {
addressTo[i] = new InternetAddress(recipients[i]);
}
*/
InternetAddress addressTo = new InternetAddress();
addressTo.setAddress(recipients) ;
msg.addRecipient(Message.RecipientType.TO, addressTo);
msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport.send(msg);
}
public static void main(String[] args) {
String foldername="C:/Nuova cartella/" ;
String recipients = "yyyyyyyy@yyyyyy.com";
String from = "xxxxxxxxxx@hotmail.it";
File folder = new File(foldername);
if (!folder.isDirectory()) {
System.out.println("[" + foldername + "] is not a directory.");
return;
}
Vector oldFiles = new Vector(Arrays.asList(folder.list()));
while (true) {
try {
Vector deleted = new Vector();
Vector newFiles = new Vector(Arrays.asList(folder.list()));
while (!oldFiles.isEmpty()) {
String element = (String) oldFiles.firstElement();
oldFiles.removeElementAt(0);
if (newFiles.contains(element)) {
newFiles.remove(element);
} else {
deleted.add(element);
}
}
String message = "Folder " + foldername + " changed!";
message += " Added files:";
for (int i = 0; i < newFiles.size(); i++) {
message = message + " " + (String) newFiles.elementAt(i);
}
message += " Deleted files:";
for (int i = 0; i < deleted.size(); i++) {
message = message + " " + (String) deleted.elementAt(i);
}
if ((!deleted.isEmpty()) || (!newFiles.isEmpty())) {
postMail(recipients, "[MailAlerter] Folder changed", message, from);
System.out.println("Folder changed, mail sent.");
} else {
System.out.println("Folder not changed: " + (folder.list()).length);
}
oldFiles = new Vector(Arrays.asList(folder.list()));
//aspettiamo 10 minuti fra un controllo e l'altro
Thread.sleep(1 * 60 * 1000);
} catch (Exception e) {
System.out.println("Error: " + e);
}
}
}
}

Rispondi quotando