如何使用servlet发送电子邮件?

时间:2014-01-09 19:40:11

标签: java jsp email tomcat servlets

我正在使用html制作电子邮件提交表单,当用户点击“提交”时,电子邮件将与Microsoft Outlook一起发送。这是我的代码:

<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript">
    function sendMail() {
        var link = "mailto:jshao745@gmail.com"
                        + "&subject=" + encodeURIComponent (document.getElementById('subject').value)
                        + "&body=" + encodeURIComponent (document.getElementById('body').value)
                ;

        window.location.href = link;
    }
</script>
<style>
    textarea
    {
        resize: none;
    }
</style>
</head>
<body>
subject:<br>
<input type="text" name="subject" id="subject"><br>
Type your message here:<br>
<textarea rows="4" cols="50" id="body">
    This is a email testing.
</textarea>
<button onclick="sendMail(); return false">Send</button>
</body>
</html>

如何进行更改,以便电子邮件是从网页(或确切地说是JSP)发送到我的Gmail的目录,而无需通过Outlook?我还尝试在上面的表单中为发件人的电子邮件地址和名称添加输入字段。我知道我需要一个servlet才能工作。

我使用java 7和tomcat 7.0。

如果有人能帮助我,我感激不尽。

1 个答案:

答案 0 :(得分:3)

创建一个servlet并将表单内容提交给servlet。 servlet本身可以使用JavaMail API 见:http://www.oracle.com/technetwork/java/javamail/index.html 将电子邮件发送给给定的接收者。

servlet发送邮件后,您可以重定向或转发到任何jsp页面。

更新,由于评论:

是的,没错。 how to send an email from jsp/servlet?

但使用8投票解决方案。不要在JSP页面中插入EMail api调用。将表单内容作为简单的http请求发送到approriate Servlet。在该Servlet中,您可以获得Tomcat服务器允许的任何内容。

一些提示:

JavaScipt将在客户端执行,并使用预先配置的EMail-Client。 当您使用EMail API时,everthing发生在服务器端。这意味着你 假装是使用SMTP协议的电子邮件服务器。看看这里: http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol