我试图在Android中创建一个邮件发送应用程序。

如果我使用:

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

这将启动内置的Android应用程序;我试图发送邮件按钮点击直接不使用这个应用程序。


当前回答

这里有很多解决方案。然而,我认为我们必须改变GMail的配置,以允许从不太安全的设备访问。转到下面的链接并启用它。这对我很有用

https://myaccount.google.com/lesssecureapps?pli=1

其他回答

谢谢你提供的宝贵信息。代码运行正常。我也可以通过添加以下代码添加附件。

private Multipart _multipart; 
_multipart = new MimeMultipart(); 

public void addAttachment(String filename,String subject) throws Exception { 
    BodyPart messageBodyPart = new MimeBodyPart(); 
    DataSource source = new FileDataSource(filename); 
    messageBodyPart.setDataHandler(new DataHandler(source)); 
    messageBodyPart.setFileName(filename); 
    _multipart.addBodyPart(messageBodyPart);

    BodyPart messageBodyPart2 = new MimeBodyPart(); 
    messageBodyPart2.setText(subject); 

    _multipart.addBodyPart(messageBodyPart2); 
} 



message.setContent(_multipart);

无需用户干预,您可以按以下方式发送:

从客户端apk发送电子邮件。这里mail.jar,激活。jar是发送java电子邮件所必需的。如果添加这些罐子,它可能会增加APK大小。 或者,您可以在服务器端代码中使用web服务,它将使用相同的mail.jar和activation.jar发送电子邮件。你可以通过asynctask调用web服务并发送电子邮件。参考相同的链接。

(但是,您需要知道邮件帐户的凭据)

无法连接到SMTP主机: Smtp.gmail.com,端口:465

在清单中添加这一行:

<uses-permission android:name="android.permission.INTERNET" />

我无法运行维纳亚克B的代码。最后我解决了这个问题如下:

1.使用这个

2.使用AsyncTask。

3.更改发件人gmail帐户的安全问题。(更改为“TURN ON”)

您可以使用JavaMail API来处理电子邮件任务。JavaMail API可以在JavaEE包中获得,它的jar可以下载。遗憾的是,它不能直接在Android应用程序中使用,因为它使用的AWT组件在Android中完全不兼容。

你可以在以下位置找到JavaMail的Android端口: http://code.google.com/p/javamail-android/

将jar添加到应用程序并使用SMTP方法