Androidバックグラウンド送信メール例(アプリケーション異常情報収集+Demoコード)

4199 ワード

前回、発表したアプリケーションのエラー情報を収集する方法についてお話ししましたが、完全なプログラムをデバッグするのに便利です.前回お話しした収集方法は,主に収集した情報をHttpのpost要求により関連する異常情報を要求パラメータとしてサーバに送信することである.これはweb開発をした人にとって、サービス側の処理は簡単です.しかし、多くのwebをしていない人にとっては面倒なことです.今日はもっと簡単な方法を紹介します.私たちは異常情報を収集した後、バックグラウンドでメールを送る方法を通じて、関連する異常情報を私たちが指定したメールボックスに送ります.
この文章は実用的な文章で,あまり理論分析には触れない.主に、自分のアプリケーションにこの機能を追加する方法を皆さんに見てもらいました.
1、サードパーティライブラリ今回バックグラウンドメールを送るには、サードパーティのライブラリが3つ必要です.これらのライブラリはjavaで有名なはずです.以前javaメールの開発をしていた友達は、多かれ少なかれ使ったことがあるはずです.Androidのデフォルトのメール送信方法は、Intentでシステムメールプログラムを呼び出す必要があります.これは私たちのバックグラウンド操作には実用的ではありません.•activation.jar•additionnal.jar•mail.jar下の私のDemoの例にはこの3つのパッケージが添付されています.これらのパッケージはネット上でも多くのリソースがあり、自分でダウンロードすることができます.
2、メール情報はバックグラウンドで送信するので、ユーザーがこれらの情報を入力する必要がないため、必要な情報を収集する必要があります.
 
  
{
    // IP    
    private String mailServerHost;   
    private String mailServerPort = "25";  

    //    
    private String fromAddress;   
    //    
    private String toAddress;   
    //    
    private String userName;   
    private String password;   
    //    
    private boolean validate = true;   
    //    
    private String subject;   
    //    
    private String content;   
    //    
    private String[] attachFileNames;     
}

これらは私たちがメールを送るときに使う情報です.ここで注意しなければならないのは、バックグラウンドメールを送信するには、アカウントのパスワードなどの機密情報が必要です.これらのメール情報は、プログラムで作成することができます.そうすれば、メールを送信するときに、ユーザーが何も入力する必要はありません.
3、メール送信
 
  
public boolean sendTextMail(MailSenderInfo mailInfo)
    {
        //    
        MyAuthenticator authenticator = null;   
        Properties pro = mailInfo.getProperties();  
        if (mailInfo.isValidate())
        {   
            // ,    
            authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());   
        }  
        // session   
        Session sendMailSession = Session.getDefaultInstance(pro,authenticator);   
        try
        {   
            // session    
            Message mailMessage = new MimeMessage(sendMailSession);   
            //    
            Address from = new InternetAddress(mailInfo.getFromAddress());   
            //    
            mailMessage.setFrom(from);   
            // ,    
            Address to = new InternetAddress(mailInfo.getToAddress());   
            mailMessage.setRecipient(Message.RecipientType.TO,to);   
            //    
            mailMessage.setSubject(mailInfo.getSubject());   
            //    
            mailMessage.setSentDate(new Date());   
            //    
            String mailContent = mailInfo.getContent();   
            mailMessage.setText(mailContent);   
            //    
            Transport.send(mailMessage);  
            return true;   
        }
        catch (MessagingException ex)
        {   
            ex.printStackTrace();   
        }   
        return false;   
    }

メールを送信するには主にmail.jarパッケージの中の方法を使用します.まずMyAuthenticatorクラスを使用してユーザー検証情報を判断し、次に私たちが収集したメール情報を設定し、最後にTransport.send()メソッドを呼び出して設定したメールを送信します.
私と个人的に効果をテストして、私はQQメールボックスでテストして、送信のスピードはとても速くて、送信のインタフェースを呼び出して、基本的にすぐにメールを受け取ることができます.以下に示すDemoの例でもQQメールボックスに基づいており、必要に応じてメールボックスパラメータ(smtp、ポートなどの情報)を変更して他のメールボックスサーバに送信することができます.この方法を利用して、私の前のプログラムの異常情報を収集する文章と結びつけて、収集した異常情報を私たちの指定したメールボックスに送ることができます.
最後に、バックグラウンドで直接メールを送信する場合は、ユーザーにヒントを与えるか、送信するかどうかを選択させることが望ましいことを説明します.さもないとチンピラソフトやバックグラウンドを背負ってトラフィックの悪口を言いやすい、O(∩∩)O!また、メールを送信する頻度にも注意し、頻繁に送信しないようにする必要があります.メールサービス業者はあなたのメールを遮断しました.
QQメールボックスを提供してメールの例を送ります:ダウンロードをクリックします