Android 使用javaMail jar包 发送邮件


使用的 Android Studio 1.2

在Android 中需要使用 javaMail的jar包  mail.jar 、additionnal.jar 、 activation.jar 这三个包 。

导包方法:  直接复制 粘贴到 Module的 libs文件中,然后右击 jar包 选择 Add As Library 点击 即可。

查看 Module是否已导入包: 右击Module 点击Open Module Setting 会出现窗口 在窗口的Dependencies 中查看已导入的jar包

1、提示 java.lang.NoClassDefFoundError: javax.activation.DataHandle

 错误代码 :Transport.send(mailMessage)

当时以为是jar包问题,经过排除 、百度 得出是UI线程的问题。在android4.0中访问网络不能在主程序中进行,需要 另创建一个子线程去执行 网络连接、发送邮件代码。

解决:

 a、使用Thread 创建匿名内部类 在匿名内部类中 执行代码。

 b、 异步线程AsyncTask

这个错误百度了一天,使用子线程才解决。对不上号的错误真恶心


 2、java.lang.SecurityException: ConnectivityService: Neither user 10096 nor current process has android.permission.ACCESS_NETWORK_STATE.</

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在 Android使用 JavaMail 设置代理发送邮件,可以按照以下步骤进行操作: 1. 首先创建一个 Properties 对象,设置代理服务器的主机名和端口号: ``` Properties props = new Properties(); props.setProperty("mail.smtp.host", "your.smtp.proxy.host"); props.setProperty("mail.smtp.port", "your.smtp.proxy.port"); ``` 2. 接下来创建一个 Authenticator 对象,用于进行 SMTP 鉴权: ``` Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("your.username", "your.password"); } }; ``` 3. 创建一个 Session 对象,传入上面的 Properties 和 Authenticator 对象: ``` Session session = Session.getInstance(props, auth); ``` 4. 创建一个 MimeMessage 对象,设置邮件内容: ``` MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("sender@example.com")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com")); message.setSubject("Test Email"); message.setText("This is a test email."); ``` 5. 最后调用 Transport.send() 方法将邮件发送出去: ``` Transport.send(message); ``` 完整的代码示例: ``` Properties props = new Properties(); props.setProperty("mail.smtp.host", "your.smtp.proxy.host"); props.setProperty("mail.smtp.port", "your.smtp.proxy.port"); Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("your.username", "your.password"); } }; Session session = Session.getInstance(props, auth); MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("sender@example.com")); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient@example.com")); message.setSubject("Test Email"); message.setText("This is a test email."); Transport.send(message); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值