2012-04-16 14 views
2

oAuthのデモに従って、Gmailの連絡先を取得しています。私はoAuth経由で認証し、連絡先を取得するだけでも問題ありません。oAuth認証アプリからSMTP経由でメールを送信するためのAndroidの例

これを変更して、SMTP経由でメールを送信できるようにします。私はこれをうまくやるためにoAuthの承認を得ることができます。

私の問題は、次のステップを理解できないということです。認証されたら電子メールの送信要求をフォーマットするにはどうすればよいですか。

誰かが私のためにコードを書いてくれるとは思っていませんが、これをカバーするgoogle api docsへの単純なリンクが私を動かすはずです。私はちょうどそれらを見つけるように見えない。

ありがとうございました。

+0

このさらに、私はOAuthを介して認証したら、私はその後、その後、電子メールを送信するためにJavaMailのような外部ライブラリを使用して、何とかのOAuth認証情報を渡す必要がありますということを考え始めていますに探しています。 誰かが私のためにこれを確認し、正しい方向に私を向けることができますか?ありがとう! – Doug

答えて

0

私は実際にこれについても研究しています。 OAuth経由で認証を受けることができれば、OAuth経由でGoogleのGmail APIが必要になります。私はOAuthをJavaアプリケーションとして使ってGmailを手に入れました。 Androidの場合、Googleが提供したコードと同じコードはIMAPではなくSMTPにしか使えないというのは面白いことです。しかし、私はそれがまだ助けると思う。

次のリンクをクリックすると、GmailのGoogle OAuthプロトコルにアクセスできます。 https://developers.google.com/google-apps/gmail/oauth_overview サンプルはすぐに使用できます。 JavaMailとOAuthアクセストークンが準備されていることを確認してください。 Apache Antでサンプルコードを実行する必要はありません。私は日食を使い、メインクラスを走らせました。

GmailのOAuthは若干異なります。どのように認証を行っているのか分かりませんが、Gmailの場合範囲は異なるでしょう:あなたがそれについて知らない場合、スクライブは、JavaでOAuthを動作させるのに非常に便利な方法です。

1
btnPreviewEmails.setOnClickListener(new OnClickListener() 
{ 

    @Override 
    public void onClick(View v) 
    { 
     // TODO Auto-generated method stub 
      String host="your smtp"; 
      final String user="from email address";//change accordingly 
      final String password="frm email password";//change accordingly 

      String to="to email";//change accordingly 

      //Get the session object 
      Properties props = new Properties(); 
      props.put("mail.smtp.host",host); 
      props.put("mail.smtp.auth", "true"); 

      javax.mail.Session session = javax.mail.Session.getDefaultInstance(props,new javax.mail.Authenticator() { 
         protected javax.mail.PasswordAuthentication getPasswordAuthentication() { 
        return new javax.mail.PasswordAuthentication(user,password); 
         } 
        }); 

        //Compose the message 
        try { 
        MimeMessage message = new MimeMessage(session); 
        message.setFrom(new InternetAddress(user)); 
        message.addRecipient(javax.mail.Message.RecipientType.TO,new InternetAddress(to)); 
        message.setSubject("javatpoint"); 
        message.setText("This is simple program of sending email using JavaMail API"); 

        //send the message 
        javax.mail.Transport.send(message); 

        System.out.println("message sent successfully..."); 

        } 
        catch (MessagingException e) 
        { 
         e.printStackTrace(); 
         } 
    }}); 
+0

ありがとうございますが、私はユーザーに資格情報を要求することなくこれをしたいと思います。 – Doug

関連する問題