2012-12-27 232 views
1

我在使用Java中的Google App Engine的表单中使用忘记密码选项。该JSP程序中的代码如下所示:如何使用Java在Google App Engine中发送电子邮件

<input type="text" size=18 name="emailcheck"> 
<input type="submit" value="Submit"> 

我如何可以验证的电子邮件地址,并发送一个复位电子邮件链接到验证的电子邮件? Oracle提供的普通Java Mail API,Java Mail API将与Google App Engine一起使用,还是我需要为Google App Engine编写一些特定的代码?

回答

3

应用程序引擎都有自己的Java Mail API

+0

如果我想使用Java邮件库而不是App Engine,该怎么办? –

+0

这是一个非常古老的答案。 Google现在建议与第三方提供商进行整合。它们都提供非常好的免费级别,并且可以在几个小时(或更少)内完成集成。如果您想使用Java Mail,则可以将其部署到灵活的运行时或Compute Engine实例。 –

2

我在共享一个链接,通过它可以在GAE中配置电子邮件服务。

https://developers.google.com/appengine/docs/java/mail/usingjavamail

在你构建路径进行配置,你需要javax.mail罐子。

并确保您使用您的管理员电子邮件发送您正在部署应用程序的电子邮件。这只会在服务器上部署一次才会起作用。

代码发送电子邮件

import java.io.UnsupportedEncodingException; 
    import java.util.Properties; 

    import javax.mail.Message; 
    import javax.mail.MessagingException; 
    import javax.mail.Session; 
    import javax.mail.Transport; 
    import javax.mail.internet.AddressException; 
    import javax.mail.internet.InternetAddress; 
    import javax.mail.internet.MimeMessage; 

    public class SendMail { 
    public void sendMail(String sendEmailFrom,String sendMailTo,String recipientName,String messageSubject,String messageText){ 
    Properties prop = new Properties(); 
    Session session = Session.getDefaultInstance(prop,null); 
    try{  
     Message msg = new MimeMessage(session); 
     msg.setFrom(new InternetAddress(sendEmailFrom)); 
     msg.addRecipient(Message.RecipientType.TO, new InternetAddress(sendMailTo, "Mr./Ms. "+recipientName)); 
     msg.setSubject(messageSubject); 
     msg.setText(messageText); 
     Transport.send(msg); 
     System.out.println("Successfull Delivery."); 
    } catch (AddressException e) { 
     e.printStackTrace(); 
    } catch (MessagingException e) { 
     e.printStackTrace(); 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } 
} 
+2

你不需要javax.mail jar添加到构建路径。 –

+0

那么,先生,我们需要这个Jar我已经配置了4个我的正在运行的项目。 http://www.java2s.com/Code/Jar/j/Downloadjavamailjar.htm –

+3

我正在使用App Engine Mail API,并且在构建路径中没有javax.mail。来自文档:“所需的所有JavaMail类都包含在App Engine SDK中”。你现在可以从所有正在运行的项目中删除这个jar :) –

0

如果您只需发送\接收电子邮件,则可以使用通过IMAP访问Google邮件。在这种情况下,普通的Java邮件API就可以。

如果您计划使用Google Java Mail API更好的特殊功能。它使用与普通Jva Mail API相同的接口。所以你只需要添加谷歌jar(不要忘记排除oracle的邮件jar)。

相关问题