我正在创建一个应用程序,在其中我想阅读所有电子邮件并希望在列表视图中显示。我一直在寻找,但找不到任何合适的方法。我试过下面的代码:
private static final String[] PROJECTION = new String[] {
ContactsContract.CommonDataKinds.Email.CONTACT_ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Email.DATA
};
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, PROJECTION, null, null, null);
if (cursor != null) {
try {
final int contactIdIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.CONTACT_ID);
final int displayNameIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
final int emailIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA);
long contactId;
String displayName, address;
while (cursor.moveToNext()) {
contactId = cursor.getLong(contactIdIndex);
displayName = cursor.getString(displayNameIndex);
address = cursor.getString(emailIndex);
}
} finally {
cursor.close();
}
}
但它返回电子邮件地址,如果我想阅读实际的电子邮件怎么办?有什么办法吗?Android API会公开这一点吗?还有一件事,在下面的一个地方我发现了获取电子邮件的方法
ContentResolver resolver = getContentResolver();
Uri uriGmail = Uri.parse("content://gmail/");
Cursor cursor = resolver.query(uriGmail, null, null, null, null);
但游标返回 null。我相信没有办法从Android设备读取电子邮件。可能是电子邮件被保存在该应用程序(假设Gmail应用程序)的本地存储(数据库)中。我进一步探索了下面的Android文档链接,但找不到方法。https://developer.android.com/reference/android/provider/ContactsContract.CommonDataKinds.Email.html
提前感谢。
GlobalScope.launch {
val props = Properties()
props.setProperty("mail.store.protocol", "imaps")
try{
val session = Session.getInstance(props, null)
val store = session.store
store.connect("imap.gmail.com", "youremail@gmail.com", "password")
val inbox = store.getFolder("INBOX")
inbox.open(Folder.READ_ONLY)
Log.d("MyLog", inbox.messageCount.toString())
val msg = inbox.getMessage(inbox.messageCount)
val address = msg.from
for (adr in address) {
Log.d("MyLog", adr.toString())
}
val mp = msg.content as Multipart
val bp = mp.getBodyPart(0)
Log.d("MyLog", bp.content.toString())
}catch (e: Exception){
Log.d("MyLog", "Error $e")
}
}
<代码>
Properties props = new Properties();
//IMAPS protocol
props.setProperty(“mail.store.protocol”, “imaps”);
//Set host address
props.setProperty(“mail.imaps.host”, imaps.gmail.com);
//Set specified port
props.setProperty(“mail.imaps.port”, “993″);
//Using SSL
props.setProperty(“mail.imaps.socketFactory.class”, “javax.net.ssl.SSLSocketFactory”);
props.setProperty(“mail.imaps.socketFactory.fallback”, “false”);
//Setting IMAP session
Session imapSession = Session.getInstance(props);
Store store = imapSession.getStore(“imaps”);
//Connect to server by sending username and password.
//Example mailServer = imap.gmail.com, username = abc, password = abc
store.connect(mailServer, account.username, account.password);
//Get all mails in Inbox Forlder
inbox = store.getFolder(“Inbox”);
inbox.open(Folder.READ_ONLY);
//Return result to array of message
Message[] result = inbox.getMessages();
试试这个,
下载邮件。罐子https://code.google.com/archive/p/javamail-android/downloads
new MyAsynk().execute();
public class MyAsynk extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
Properties props = new Properties();
props.setProperty("mail.store.protocol", "imaps");
try {
Session session = Session.getInstance(props, null);
Store store = session.getStore();
store.connect("imap.gmail.com", "youremail@gmail.com", "password");
Folder inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_ONLY);
javax.mail.Message msg = inbox.getMessage(inbox.getMessageCount());
javax.mail.Address[] in = msg.getFrom();
for (javax.mail.Address address : in) {
System.out.println("FROM:" + address.toString());
}
Multipart mp = (Multipart) msg.getContent();
BodyPart bp = mp.getBodyPart(0);
System.out.println("SENT DATE:" + msg.getSentDate());
System.out.println("SUBJECT:" + msg.getSubject());
System.out.println("CONTENT:" + bp.getContent());
} catch (Exception mex) {
mex.printStackTrace();
}
return null;
}
}
问题内容: 现在我在这里 一些字母带有base64编码。怎么解码呢? base64.b64encode(some_string)-没有帮助 问题答案: **我没有写这个取自https://yuji.wordpress.com/2011/06/22/python-imaplib-imap-example- with-gmail/
问题内容: 当我尝试为来电创建自定义屏幕时,我试图以编程方式接听来电。我正在使用以下代码,但在Android 5.0中不起作用。 问题答案: 使用Android 8.0 Oreo更新 尽管最初要求提供Android L支持是一个问题,但似乎仍然有人在质疑这个问题和答案,因此值得描述Android 8.0 Oreo中引入的改进。向后兼容方法仍在下面描述。 发生了什么变化? 从Android 8.0
DocuSign向签名者发送一封电子邮件,其中包含文档,如果我们没有提到任何电子邮件正文,它只会说请DocuSign文档名,我想知道我们是否可以删除发件人的详细信息,如 发件人姓名,发件人电子邮件地址, 你好收件人姓名, 请记录文档名称, 谢谢,发件人姓名 是否可以在开始时通过编程删除发件人姓名和发件人电子邮件地址,而无需编辑品牌中的资源文件
本文向大家介绍如何在iOS中以编程方式接听来电?,包括了如何在iOS中以编程方式接听来电?的使用技巧和注意事项,需要的朋友参考一下 Apple iPhone SDK不允许使用此功能。如果您确实希望实现它,则可以使用一些私有API,例如CTCallAnswer(call);。 这将导致您的应用商店被拒绝。
我想分享一个文件(. pdf,. apk等)使用分享意图,我搜索谷歌,但我只找到共享图像的代码
我想读取word/docx文件的数据并保存到我的数据库中,需要时我可以从数据库中获取数据并在我的html页面上显示我使用ApachePOI读取docx文件中的数据,但它无法获取公式,请帮助我!