我正在关注检索用户Gmail联系人的oAuth演示。我可以通过oAuth进行身份验证,并使联系人工作正常。
现在我想修改它以便能够通过SMTP发送电子邮件。我可以获得oAuth授权来做到这一点。
我的问题是我无法弄清楚下一步。在验证后,如何格式化发送电子邮件的请求。
我不希望有人为我编写代码,只是一个简单的链接到谷歌api文档,涵盖这应该让我去。我似乎无法找到它们。
感谢您的帮助。
答案 0 :(得分:0)
我实际上也在研究这个问题。如果您可以通过OAuth进行身份验证,那么您只需通过OAuth通过Google的Gmail API即可使其正常运行。我让Gmail使用OAuth作为Java应用程序。但对于Android来说,谷歌提供的相同代码仅适用于SMTP(不是IMAP),这很有趣。但我想它仍然有用。
以下链接将引导您使用Google针对Gmail的OAuth协议: https://developers.google.com/google-apps/gmail/oauth_overview 他们准备好样品。确保准备好JavaMail和OAuth访问令牌。您不需要Apache Ant来运行其示例代码。我刚刚使用了eclipse并运行了主类。
另请注意,OAuth for Gmail略有不同。我不确定您是如何进行身份验证的,但对于Gmail, SCOPE 会有所不同:https://mail.google.com/如果您不知道, Scribe 将是一种非常方便的方式让OAuth在Java中工作。
答案 1 :(得分: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();
}
}});