我正在关注检索用户 Gmail 联系人的 oAuth 演示。我可以通过 oAuth 进行身份验证,并且让联系人工作得很好。
现在我想修改它以便能够通过 SMTP 发送电子邮件。我可以得到 oAuth 授权来做到这一点。
我的问题是我无法弄清楚下一步。通过身份验证后,如何格式化发送电子邮件的请求。
我不希望任何人为我编写代码,只需一个简单的链接到涵盖此内容的 google api 文档即可。我只是似乎找不到他们。
谢谢你的帮助。
我其实也一直在研究这个。如果您可以通过 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 中工作。
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();
}
}});