在Android上自动发送电子邮件

在Android上自动发送电子邮件,android,email,gmail,Android,Email,Gmail,为了在没有用户干预的情况下从我的设备Nexus7和三星galaxy S5发送电子邮件,我遵循中所述的步骤 及 两人都正确地发送了电子邮件,但我总是以弹出消息结束 Gmail已经停止在我的设备上,这对我的应用程序的用户来说不是很有价值,这使得两个解决方案都无法使用 是否有其他解决方案,或者如何消除此错误 Logcat显示以下错误: 03-17 11:44:32.324: I/Gmail(2797): Sending provider changed intent: Intent { act=a

为了在没有用户干预的情况下从我的设备Nexus7和三星galaxy S5发送电子邮件,我遵循中所述的步骤

两人都正确地发送了电子邮件,但我总是以弹出消息结束 Gmail已经停止在我的设备上,这对我的应用程序的用户来说不是很有价值,这使得两个解决方案都无法使用

是否有其他解决方案,或者如何消除此错误

Logcat显示以下错误:

03-17 11:44:32.324: I/Gmail(2797): Sending provider changed intent: Intent { act=android.intent.action.PROVIDER_CHANGED dat=content://gmail-ls/unread/^i (has extras) }
03-17 11:44:32.341: I/Gmail(2797): Sending provider changed intent: Intent { act=android.intent.action.PROVIDER_CHANGED dat=content://gmail-ls/unread/^iim (has extras) }
03-17 11:44:32.365: I/Gmail(2797): notifyAccountChanged
03-17 11:44:32.368: I/Gmail(2797): getAccountsCursor
03-17 11:44:32.369: W/Gmail(2797): Sync complete for account: account:-654877552
03-17 11:44:32.379: W/GAV2(2797): Thread[SyncAdapterThread-1,5,main]: dispatch call queued.  Need to call GAServiceManager.getInstance().initialize().
3-17 11:44:32.380: E/AndroidRuntime(2797): FATAL EXCEPTION: SyncAdapterThread-1
03-17 11:44:32.380: E/AndroidRuntime(2797): Process: com.google.android.gm, PID: 2797
03-17 11:44:32.380: E/AndroidRuntime(2797): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.net.Uri.getScheme()' on a null object reference
03-17 11:44:32.380: E/AndroidRuntime(2797):     at android.content.ContentResolver.openInputStream(ContentResolver.java:630)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at com.google.android.gm.provider.aV.b(SourceFile:6237)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at com.google.android.gm.provider.bh.HC(SourceFile:4213)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at com.google.android.gm.provider.bh.<init>(SourceFile:4186)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at com.google.android.gm.provider.bo.a(SourceFile:3898)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at com.google.android.gm.provider.Operations.b(SourceFile:628)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at com.google.android.gm.provider.aV.a(SourceFile:5936)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at com.google.android.gm.provider.MailSync.a(SourceFile:899)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at com.google.android.gm.provider.MailEngine.a(SourceFile:2432)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at com.google.android.gm.provider.MailEngine.a(SourceFile:2129)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at com.google.android.gm.provider.bp.a(SourceFile:127)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at com.google.android.common.b.onPerformSync(SourceFile:33)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at com.google.android.gm.provider.bp.onPerformSync(SourceFile:82)
03-17 11:44:32.380: E/AndroidRuntime(2797):     at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:259)
03-17 11:44:32.417: I/NotifUtils(2797): Validating Notification, mapSize: 1 getAttention: true ignoreUnobtrusive: false

你能得到导致Gmail停止的错误的堆栈跟踪吗?如果你在Android Studio上,它将在logcat下

您可能需要通过选择日志区域最右侧的下拉列表并选择无过滤器来删除日志的过滤器

这将帮助您排除导致此崩溃的错误


相关:我建议将发送电子邮件的逻辑转移到服务器上,这样可以更好地监控美国的邮件传递、垃圾邮件合规性和使用率。如果您不需要以用户身份发送电子邮件,这可能是一个更好的解决方案。

我使用了SMTP服务mailgun,尽管还有其他服务,而不是让设备本身发送。没有发送电子邮件的迹象。