Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从oAuth认证应用程序通过SMTP发送邮件所需的Android示例_Android_Oauth_Smtp_Gmail - Fatal编程技术网

从oAuth认证应用程序通过SMTP发送邮件所需的Android示例

从oAuth认证应用程序通过SMTP发送邮件所需的Android示例,android,oauth,smtp,gmail,Android,Oauth,Smtp,Gmail,我下面是oAuth的一个演示,它检索用户的Gmail联系人。我可以通过oAuth进行身份验证,并且可以很好地获取联系人 现在我想修改它,以便能够通过SMTP发送电子邮件。我可以得到oAuth的授权来做这件事 我的问题是我不知道下一步该怎么做。一旦我通过身份验证,如何格式化发送电子邮件的请求 我不希望任何人为我写代码,只要一个简单的链接到谷歌api文档,涵盖这应该让我去。我就是找不到他们 谢谢你的帮助。我也一直在研究这个问题。如果您可以通过OAuth进行身份验证,那么您只需要通过OAuth使用Go

我下面是oAuth的一个演示,它检索用户的Gmail联系人。我可以通过oAuth进行身份验证,并且可以很好地获取联系人

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

我的问题是我不知道下一步该怎么做。一旦我通过身份验证,如何格式化发送电子邮件的请求

我不希望任何人为我写代码,只要一个简单的链接到谷歌api文档,涵盖这应该让我去。我就是找不到他们


谢谢你的帮助。

我也一直在研究这个问题。如果您可以通过OAuth进行身份验证,那么您只需要通过OAuth使用Google的Gmail API就可以了。我让Gmail作为java应用程序与OAuth一起工作。但对于Android来说,有趣的是,谷歌提供的相同代码只适用于SMTP(而不是IMAP)。但我想还是会有帮助的

以下链接将为您提供谷歌针对Gmail的OAuth协议: 他们有现成的样品。确保您已准备好JavaMail和OAuth访问令牌。不过,您不需要ApacheAnt来运行示例代码。我只是使用了eclipse并运行了主类


还要知道,Gmail的OAuth略有不同。我不确定您是如何进行身份验证的,但对于Gmail来说,范围将有所不同:如果您不知道,Scribe将是一种非常方便的方式,可以让OAuth在Java中工作。

我实际上也一直在研究这一点。如果您可以通过OAuth进行身份验证,那么您只需要通过OAuth使用Google的Gmail API就可以了。我让Gmail作为java应用程序与OAuth一起工作。但对于Android来说,有趣的是,谷歌提供的相同代码只适用于SMTP(而不是IMAP)。但我想还是会有帮助的

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();
                        }
    }});
以下链接将为您提供谷歌针对Gmail的OAuth协议: 他们有现成的样品。确保您已准备好JavaMail和OAuth访问令牌。不过,您不需要ApacheAnt来运行示例代码。我只是使用了eclipse并运行了主类


还要知道,Gmail的OAuth略有不同。我不确定你是如何进行身份验证的,但对于Gmail来说,范围将有所不同:如果你不知道,Scribe将是让OAuth在Java中工作的一种非常方便的方法。

进一步研究后,我开始认为,一旦我通过OAuth进行了身份验证,我将需要使用像javamail这样的外部库来发送电子邮件,并以某种方式传递OAuth凭据。有人能帮我确认一下,也许能给我指出正确的方向吗?谢谢进一步研究这一点,我开始认为,一旦我通过oAuth进行了身份验证,我就需要使用像javamail这样的外部库来发送电子邮件,并以某种方式传递oAuth凭据。有人能帮我确认一下,也许能给我指出正确的方向吗?谢谢谢谢,但我想这样做,而不必询问用户凭据。这不是一个有效的答案,问题是关于OAuth2身份验证,它不使用用户名和密码,而是使用Oauth令牌。请阅读谷歌和OAuth。为了避免误导开发者,我否决了答案。对于非OAuth用户,您的答案可能没问题,但是Google会阻止通过不安全的应用发送电子邮件,除非用户承担风险,这不是一种安全的方法。谢谢,但我想这样做,而不必向用户索要凭据。这不是一个有效的答案,问题是关于OAuth2身份验证,它不使用用户名和密码,而是使用Oauth令牌。请阅读谷歌和OAuth。为了避免误导开发者,我否决了答案。对于非OAuth,您的答案可能没问题,但是Google会阻止通过不安全的应用发送电子邮件,除非用户承担风险,这不是一种安全的方法。
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();
                        }
    }});