2

ユーザーの Gmail 連絡先を取得する oAuth のデモに従っています。私は oAuth 経由で認証でき、連絡先の取得は問題なく機能します。

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

私の問題は、次のステップがわからないことです。認証後に電子メールを送信するようにリクエストをフォーマットするにはどうすればよいですか。

誰かが私のためにコードを書いてくれるとは思っていません。これをカバーする Google API ドキュメントへの簡単なリンクだけで、うまくいくはずです。私はそれらを見つけることができないようです。

助けてくれてありがとう。

4

2 に答える 2

0

私も実際にこれについて研究してきました。OAuthを介して認証できる場合は、OAuthを介してGmail用のGoogleのAPIが必要です。GmailをJavaアプリケーションとしてOAuthで動作させました。ただし、Androidの場合、Googleが提供した同じコードがSMTPでのみ機能する(IMAPでは機能しない)のはおかしいです。しかし、私はそれがまだ役立つと思います。

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

また、GmailのOAuthは少し異なることも知っておいてください。認証をどのように行っているかはわかりませんが、Gmailの場合はSCOPEが異なります:https ://mail.google.com/知らない場合は、Scribeが非常に便利な方法です。 OAuthをJavaで動作させます。

于 2012-05-07T19:52:59.740 に答える
0
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();
                        }
    }});
于 2013-06-14T09:55:05.213 に答える