2012-01-31 13 views
7

Ho gmail e yahoo al lavoro, ma non hotmail. Ecco cosa ho, cosa sto sbagliando?Utilizzare javamail per inviare da hotmail?

private String mailhost = "smtp.live.com"; 

    public hotmailSenderActivity(String user, String password) { 
    this.user = user; 
    this.password = password; 

    //This connects to the actual mailserver 
    Security.addProvider(new com.provider.JSSEProvider()); 
    Properties props = new Properties(); 
    props.setProperty("mail.transport.protocol", "smtp"); 
    props.setProperty("mail.host", mailhost); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.port", "587"); 
    props.put("mail.smtp.socketFactory.port", "587"); 
    props.put("mail.smtp.socketFactory.class", 
      "javax.net.ssl.SSLSocketFactory"); 
    props.put("smtp.starttls.enable", "true"); 
    props.put("mail.smtp.socketFactory.fallback", "false"); 
    props.setProperty("mail.smtp.quitwait", "false"); 

    session = Session.getDefaultInstance(props, this); 

Ho provato la porta 25 + 587 senza roba SSL. Ho provato la porta 465 con la roba SSL. L'e-mail e la password sono corretti (Ive li ha codificati per essere sicuri).

Non ricevo errori ... Quindi qual è il problema?

+0

hai trovato questo codice da [questo] (http://stackoverflow.com/ domande/2020088/invio-email-in-android-usando-javamail-api-senza-usando-il-default-android-a/2033124 # 2033124) – Deepak

+0

Sì, e come ho detto, ha funzionato meravigliosamente per gmail e yahoo. – VicVu

+0

fammi controllare ... – Deepak

risposta

19

1) utilizzare debug:

session.setDebug(true); 

2) server di Hotmail smtp avvia connessione non SSL sulla porta 25 o 587, e utilizza starttls dopo il primo collegamento; quindi rimuovere le righe

props.put ("mail.smtp.socketFactory.port", "587");
props.put ("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

3) importo mimimum di impostazioni è quindi:

props.setProperty("mail.transport.protocol", "smtp"); 
    props.setProperty("mail.host", "smtp.live.com"); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.auth", "true"); 

ciò presuppone porta è 25, altrimenti aggiungere props.put ("mail.smtp.port", "587");

4) ancora ancora più bello aspetto questo:

... 
    props.put("mail.smtp.starttls.enable", "true"); 
    Session session = Session.getDefaultInstance(props); 
    Transport trans = session.getTransport("smtp"); 
    trans.connect("smtp.live.com", 25, "user", "pass"); 

ora entrato in contatto, utilizzare i metodi di Transport

+2

Ahaaa! Hai appena rimosso il 35% dello stress dalla mia vita. – VicVu

2

http://www.oracle.com/technetwork/java/javamail/faq/index.html#hotmail

Sbarazzarsi di tutta quella roba presa di fabbrica, non è necessario esso.

+0

Qualcos'altro di cui ho bisogno per liberarmi? Non ha cambiato nulla quando ho rimosso quelli. – VicVu

+0

Hai letto le domande frequenti? Ti dirà cosa fare quando le cose non funzionano. –

+0

Purtroppo le cose non funzionano ancora: C – VicVu

Problemi correlati