Autore Topic: Modifica il Message-Id di una Mail  (Letto 487 volte)

Offline mambu

  • Utente normale
  • ***
  • Post: 167
  • Respect: +1
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Modifica il Message-Id di una Mail
« il: 18 Ottobre 2013, 10:04:10 CEST »
0
Salve a tutti,
mi sto cimentando in un mio progettino e avevo intenzione di utilizzare le mail per inviare dati da un app.
Sono già riuscito ad inviare in background una mail utilizzando questo aiuto, ora però avrei bisogno di caratterizzare la mail in modo che possa facilmente riconoscerla ed avevo pensato di usare il message-id.
Qualcuno sa come funziona e se posso interagirci in qualche modo tramite le librerie di android?

indico da dove ho preso l'invio delle mail in background
Sending Email in Android using JavaMail API without using the default/built-in app - Stack Overflow

grazie a tutti!

Post unito: 18 Ottobre 2013, 15:00:35 CEST
fatto ho risolto cosi:

Codice (Java): [Seleziona]
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class CustomMimeMessage extends MimeMessage {
        Session session;
        private static int id = 0;

        public CustomMimeMessage(Session session) {
                super(session);
                this.session = session;
        }

        @Override
        protected void updateMessageID() throws MessagingException {
                setHeader("Message-ID", "<" + getUniqueMessageIDValue(session) + ">");
        }

        public static String getUniqueMessageIDValue(Session ssn) {
                String suffix = null;

                InternetAddress addr = InternetAddress.getLocalAddress(ssn);
                if (addr != null)
                        suffix = addr.getAddress();
                else {
                        suffix = "yourMessageID@localhost"; // worst-case default
                }

                StringBuffer s = new StringBuffer();

                // Unique string is <hashcode>.<id>.<currentTime>.JavaMail.<suffix>
                s.append(s.hashCode()).append('.').append(getUniqueId()).append('.')
                                .append(System.currentTimeMillis()).append('.')
                                .append("JavaMail.").append(suffix);
                return s.toString();
        }

        private static synchronized int getUniqueId() {
                return id++;
        }
}

e poi creu un tipo messaggio con questo messege id:
Codice (Java): [Seleziona]
public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception {  
        try{
                Log.v("d","entartp");
        CustomMimeMessage message = new CustomMimeMessage(session);
.........
}
}


Ora però vorrei creare una specie di broadcast receiver per le mail, come so che avviene con gli sms.
Qualcuno mi può aiutare?? :)
« Ultima modifica: 18 Ottobre 2013, 15:00:36 CEST da mambu, Reason: Merged DoublePost »