您的位置:首页 > 移动开发 > Android开发

Android用JavaMail发送邮件

2015-10-10 09:22 459 查看
   
有一个需要:当Android程序异常退出的时候把日志啊、堆栈信息整成一个邮件,发给指定邮箱。粗一搜都是用Intent的方式——但这不符合我们的需要,我们并不需要使用用户的邮箱来发送,也不关心用户是否有配置邮箱,只要用户能上网,直接把smtp报文扔给服务器即可。

   
传统Java程序如果想达到这个目的,可以使用JavaMail,但直接把代码撸来,发现Android
sdk中没有javax.mail.*,泪流满面。继续搜索,发现Java界果然好人众多,方法如下:

1)去http://code.google.com/p/javamail-android/,下载additionnal.jar、mail.jar、activation.jar
三个包,扔到项目路径下的某个自定义路径。

2)eclipse,编辑项目,Add Jars,把那三个jar包都添加了。

3)加入一下两个原文件

=======代码分割线,版权声明:基本是撸来的,略作改动,请君自便=======

import java.security.AccessController;

import java.security.Provider;

public final class JSSEProvider extends Provider {

    private
static final long serialVersionUID = 1L;

    public
JSSEProvider() {

   
   
super("HarmonyJSSE", 1.0, "Harmony JSSE Provider");

   
   
AccessController

   
   
   
   
.doPrivileged(new
java.security.PrivilegedAction<Void>()
{

   
   
   
   
    public Void
run() {

   
   
   
   
   
   
put("SSLContext.TLS",

   
   
   
   
   
   
   
   
"org.apache.harmony.xnet.provider.jsse.SSLContextImpl");

   
   
   
   
   
   
put("Alg.Alias.SSLContext.TLSv1", "TLS");

   
   
   
   
   
   
put("KeyManagerFactory.X509",

   
   
   
   
   
   
   
   
"org.apache.harmony.xnet.provider.jsse.KeyManagerFactoryImpl");

   
   
   
   
   
   
put("TrustManagerFactory.X509",

   
   
   
   
   
   
   
   
"org.apache.harmony.xnet.provider.jsse.TrustManagerFactoryImpl");

   
   
   
   
   
    return
null;

   
   
   
   
    }

   
   
   
    });

    }

}

=====================================================================

import javax.activation.DataHandler;

import javax.activation.DataSource;

import javax.mail.Message;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.inte
4000
rnet.InternetAddress;

import javax.mail.internet.MimeMessage;

import java.io.ByteArrayInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.security.Security;

import java.util.Properties;

public class MailSender extends javax.mail.Authenticator {

    private
String user;

    private
String password;

    private
Session session;

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: