如何获取电子邮件地址

7

我正在使用这样的代码通过内容提供程序获取gmail电子邮件。 我的问题是“fromAddress”字段包含发件人的名称而不是发件人的电子邮件。 例如,它将包含“John Doe”,但我想要“john.doe@somewhere.net”。

该字段中的名称是用户在其电子邮件客户端中设置的名称,而不是来自我的Android联系人。

这是我正在使用的代码:

ContentResolver resolver = context.getContentResolver();
cursor = resolver.query(Uri.parse("content://gmail-ls/conversations/myemail@gmail.com/", null, null, null, null);
cursor.moveToFirst();
String fromAddress = cursor.getString(cursor.getColumnIndexOrThrow("fromAddress")));
cursor.close();

我知道电子邮件不在来自此URI的任何字段中。我已尝试使用此类URI:"content://gmail-ls/messages/myemail@gmail.com/39920384203052",但对于有效的messageId,它总是返回一个记录为0的游标。
请帮助我获取给定gmail电子邮件的发件人电子邮件...
谢谢!
2个回答

2

启动一个带返回结果的Activity

Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);

startActivityForResult(contactPickerIntent, CONTACT_PICKER_RESULT);

OnActivityResult

Uri result = data.getData();  
String con = result.getLastPathSegment();
cursor = getContentResolver().query(Phone.CONTENT_URI,  
                    null, Phone.CONTACT_ID + "=?", new String[] { con },  
                    null);
int id = cursor.getColumnIndex(Phone.DATA);
if(cursor.moveToFirst()){
    String mail = cursor.getString(id);
    Log.e("Email", mail);
}

0

我在 Android 上找不到任何关于 GMail 内容提供程序的文档,但这可能会对您有所帮助。

打开一个 HttpRequest 对象并将其发送到此处 - https://mail.google.com/mail/feed/atom。一旦进行身份验证(标准 HTTP auth),则应该会收到收件箱的 XML 源。

从那里你可以解析它。你要查找的字段是 entry->author->email。

希望这可以帮助到你!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接