Je voudrais juste demander comment puis-je obtenir les messages sur mon dossier de boîte de réception de courrier électronique et l'afficher? De même, comment puis-je accéder à la boîte de réception de Gmail ou à la boîte de réception d'un autre client de messagerie? est-ce possible sur android?comment puis-je obtenir les messages dans le dossier de la boîte de réception du client gmail/e-mail?
4
A
Répondre
2
Il n'y a pas de support formel pour cela sur android. Il ya un hack où vous utilisez le fournisseur de contenu gmail-ls mais de ce que j'ai compris, cela ne fonctionne pas sur les dernières versions d'Android (voir this pour plus de détails). Si vous voulez utiliser le fournisseur de contenu gmail-ls check out this pour un exemple, mais rappelez-vous qu'il s'agit d'un hack et non officiellement pris en charge. Donc ne soyez pas surpris si/quand cela ne fonctionne pas.
Vous voudrez peut-être jeter un coup d'œil à quelque chose comme gmail4j. Il n'a pas la bonne intégration qu'un fournisseur de contenu formel aurait mais il a au moins une API connue.
1
public class EmailinboxActivity extends Activity {
/** Called when the activity is first created. */
EmailManager emailManager;
private String stmpHost = "smtp.gmail.com";
private String mailServer = "imap.gmail.com";
public String urlServer = "gmail.com";
public String username = " Any Gmail Username";
public String password = " Any Gmail Password";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
emailManager=new EmailManager(username, password, urlServer, stmpHost, mailServer);
try {
// emailManager.getInboxMails();
emailManager.close();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//
public class ByteArrayDataSource implements DataSource {
private byte[] data;
private String type;
public ByteArrayDataSource(byte[] data, String type) {
super();
this.data = data;
this.type = type;
}
public ByteArrayDataSource(byte[] data) {
super();
this.data = data;
}
public void setType(String type) {
this.type = type;
}
public String getContentType() {
if (type == null)
return "application/octet-stream";
else
return type;
}
public InputStream getInputStream() throws IOException {
return new ByteArrayInputStream(data);
}
public String getName() {
return "ByteArrayDataSource";
}
public OutputStream getOutputStream() throws IOException {
throw new IOException("Not Supported");
}
}
//
public class EmailAccount {
public String urlServer = "gmail.com";
public String username = "username";
public String password = "password";
public String emailAddress;
public EmailAccount(String username, String password, String urlServer) {
this.username = username;
this.password = password;
this.urlServer = urlServer;
this.emailAddress = username + "@" + urlServer;
}
}
//
public class EmailAuthenticator extends Authenticator {
private EmailAccount account;
public EmailAuthenticator(EmailAccount account) {
super();
this.account = account;
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(account.emailAddress, account.password);
}
}
//
package com.android.emailinbox;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import android.location.Address;
import android.util.Log;
import android.widget.Toast;
public class EmailManager {
private String stmpHost = "smtp.gmail.com";
private String mailServer = "imap.gmail.com";
private EmailAccount account;
private Session smtpSession;
private Session imapSession;
private Folder inbox,sentMail;
private Store store,sentstore;
boolean isSet;
public EmailManager(String username, String password, String urlServer, String stmpHost, String mailServer) {
account = new EmailAccount(username, password, urlServer);
this.stmpHost = stmpHost;
this.mailServer = mailServer;
initProtocol();
}
private void initProtocol() {
EmailAuthenticator authenticator = new EmailAuthenticator(account);
Properties props1 = new Properties();
props1.setProperty("mail.transport.protocol", "smtps");
props1.setProperty("mail.host", stmpHost);
props1.put("mail.smtp.auth", "true");
props1.put("mail.smtp.port", "465");
props1.put("mail.smtp.socketFactory.port", "465");
props1.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props1.put("mail.smtp.socketFactory.fallback", "false");
props1.setProperty("mail.smtp.quitwait", "false");
smtpSession = Session.getDefaultInstance(props1, authenticator);
Properties props2 = new Properties();
props2.setProperty("mail.store.protocol", "imaps");
props2.setProperty("mail.imaps.host", mailServer);
props2.setProperty("mail.imaps.port", "993");
props2.setProperty("mail.imaps.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props2.setProperty("mail.imaps.socketFactory.fallback", "false");
imapSession = Session.getInstance(props2);
}
public void getInboxMails() throws MessagingException {
store = imapSession.getStore("imaps");
store.connect(mailServer, account.username, account.password);
inbox = store.getFolder("Inbox");
inbox.open(Folder.READ_ONLY);
Message[] messages = inbox.getMessages();
// List<Address>addresses=new ArrayList<Address>();
for (int i = messages.length - 1; i >= 0; i--)
{
Part p = messages[i];
try {
String subject = messages[i].getSubject();
Log.v("subject","subject="+subject);
String body=getText(p);
Log.v("body","body="+body);
javax.mail.Address[] address=messages[i].getFrom();
String add=address.toString().trim();
Log.v("address","address="+add);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return ;
}
/*public void getsentMails() throws MessagingException {
sentstore = imapSession.getStore("imaps");
sentstore.connect(mailServer, account.username, account.password);
sentMail = sentstore.getFolder("Sent");
sentMail.open(Folder.READ_ONLY);
Message[] sentmessages = sentMail.getMessages();
Log.v("messages","messages"+sentmessages);
Log.v("messages","messages"+sentmessages.length);
for (int i = sentmessages.length - 1; i >= 0; i--)
{
Part p = sentmessages[i];
try {
String sentsubject = sentmessages[i].getSubject();
Log.v("sentsubject","sentsubject="+sentsubject);
String sentbody=getText(p);
Log.v("sentbody","sentbody="+sentbody);
javax.mail.Address[] address=messages[i].getFrom();
String add=address.toString().trim();
Log.v("address","address="+add);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return ;
}*/
public void close() {
//Close connection
try {
// inbox.close(false);
// store.close();
sentMail.close(false);
sentstore.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/*public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception {
MimeMessage message = new MimeMessage(smtpSession);
DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setDataHandler(handler);
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 String getText(Part p) throws MessagingException, IOException {
if (p.isMimeType("text/*")) {
boolean textIsHtml = false;
String s = (String) p.getContent();
textIsHtml = p.isMimeType("text/html");
return String.valueOf(s);
}
if (p.isMimeType("multipart/alternative")) {
// prefer html text over plain text
Multipart mp = (Multipart) p.getContent();
String text = null;
for (int i = 0; i < mp.getCount(); i++) {
Part bp = mp.getBodyPart(i);
if (bp.isMimeType("text/plain")) {
if (text == null)
text = getText(bp);
continue;
} else if (bp.isMimeType("text/html")) {
String s = getText(bp);
if (s != null)
return String.valueOf(s);
} else {
return getText(bp);
}
}
return text;
} else if (p.isMimeType("multipart/*")) {
Multipart mp = (Multipart) p.getContent();
for (int i = 0; i < mp.getCount(); i++) {
String s = getText(mp.getBodyPart(i));
if (s != null)
return String.valueOf(s);
}
}
return null;
}
}
Questions connexes
- 1. Aide à la suppression des messages du dossier de la boîte de réception
- 2. Comment identifier brouillon de la boîte de réception et les messages envoyés dans la boîte aux lettres MAIl
- 3. comment obtenir des messages dans la boîte de réception de facebook en utilisant la requête fql?
- 4. Vérifiez la boîte de réception des messages dynamiquement avec ajax?
- 5. Comment lancer le client de messagerie directement dans la boîte de réception?
- 6. Réception de messages de diffusion
- 7. afficher la boîte de réception?
- 8. Comment empêcher les SMS entrants d'atteindre la boîte de réception?
- 9. Mise à jour côté client - PHP/ASP - boîte de réception
- 10. Suggestions pour les notifications de boîte de réception dans Android?
- 11. Fonction PHP Mail affiche les messages en texte brut dans la boîte de réception
- 12. Messages de boîte de réception stockés dans la base de données ou via Real Email System?
- 13. courrier sont livrés dans le dossier de spam au lieu de boîte de réception
- 14. Récupérer le message de la boîte de réception du serveur Exchange en utilisant .net
- 15. Comment peut-on récupérer le courrier de la boîte de réception, dossier à l'aide POP3 dans C
- 16. Comment modifier les SMS dans une boîte de réception Android
- 17. lire les messages SMS de ma boîte de réception en j2me
- 18. Lecture des messages de la boîte de réception Lotus Notes à l'aide de VB.Net "Interop.Domino.dll"
- 19. Afficher l'icône Outlook dans la zone de notification pour les messages, pas dans la boîte de réception
- 20. Boîte de réception Android Access
- 21. Accéder à la boîte de réception des messages sans contenu UrI (contenu //: sms)
- 22. Réception de messages via un socket
- 23. Comment déplacer des e-mails vers un autre dossier du compte POP3 depuis la boîte de réception?
- 24. Application Win32 GUI: comment obtenir des messages stderr dans la boîte aux messages
- 25. iPhone: Obtenir le chemin du fichier qui est dans le sous-dossier du dossier de ressources
- 26. Aller dans la boîte de réception dans Android
- 27. Obtenir la taille du dossier
- 28. Réception de messages SMS sous Android 1.6
- 29. Comment renvoyer le nombre de messages non lus d'un utilisateur à partir d'une boîte de réception Exchange?
- 30. Réception de messages des files d'attente
J'ai travaillé dessus ... Cela vous aide –