2

我正在关注检索用户 Gmail 联系人的 oAuth 演示。我可以通过 oAuth 进行身份验证,并且让联系人工作得很好。

现在我想修改它以便能够通过 SMTP 发送电子邮件。我可以得到 oAuth 授权来做到这一点。

我的问题是我无法弄清楚下一步。通过身份验证后,如何格式化发送电子邮件的请求。

我不希望任何人为我编写代码,只需一个简单的链接到涵盖此内容的 google api 文档即可。我只是似乎找不到他们。

谢谢你的帮助。

4

2 回答 2

0

我其实也一直在研究这个。如果您可以通过 OAuth 进行身份验证,那么您只需要通过 OAuth 为 Gmail 提供的 Google API 即可使其正常工作。我让 Gmail 使用 OAuth 作为 java 应用程序。不过,对于 Android,有趣的是 Google 提供的相同代码仅适用于 SMTP(不适用于 IMAP)。但我想它仍然会有所帮助。

以下链接将带您访问 Google 的 Gmail OAuth 协议: https ://developers.google.com/google-apps/gmail/oauth_overview 他们已经准备好使用示例。确保您已准备好 JavaMail 和 OAuth 访问令牌。不过,您不需要 Apache Ant 来运行他们的示例代码。我刚刚使用了eclipse并运行了主类。

还知道 Gmail 的 OAuth 略有不同。我不确定您是如何进行身份验证的,但对于 Gmail,范围会有所不同: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 回答