我使用此代码在jsp中创建了一个联系我们表单。
<form action="ContactServlet" method="post">
<p>Your email address: <input name="email"></p>
<p>Mail subject: <input name="subject"></p>
<p>Mail message: <textarea name="message"></textarea></p>
<p><input type="submit"></p>
<label name="lblMessageSent"></label>
</form>
我将我的servlet配置为使用gmail,并且还硬编码了要发送的电子邮件的用户名和密码。问题是我希望用户的电子邮件显示为发送,或者如果它更容易,我会在收到的电子邮件中以某种方式向用户显示电子邮件。
String from = request.getParameter("email");
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("adonisokpidi@gmail.com"));
String subject = request.getParameter("subject");
message.setSubject(subject);
String messageContent = request.getParameter("message");
message.setText(messageContent);
Transport.send(message);
response.sendRedirect("contact.jsp");
正如您所看到的,来自地址的电子邮件应该是HTML表单的email
字段中的电子邮件,但实际上所有邮件都是使用硬编码的用户名和密码发送的。
问题#1:我如何使这项工作?
问题#2:在发送邮件后,如何使表单显示contact.jsp中发送的内容消息的标签。
由于
答案 0 :(得分:1)
如果您使用userId和密码发送带有Gmail的电子邮件,则from将成为您的userId(始终)。您需要使用正确配置的SMTP服务器发送电子邮件,即使这样,它也会随您的应用程序ID一起发送。要使用任意电子邮件发送,您需要一个“开放中继”。你可能不会在互联网上找到一个,你当然可以在自己的服务器上配置一个(但是在一些垃圾邮件事件之后,它可能会被阻止)。
答案 1 :(得分:0)
ContactUs.jsp的代码
<form method="post" action="contactus">
<div><span><label>E-mail</label></span>
<span><input name="email" type="text" class="textbox"></span></div>
<div><span><center><input type="submit" class="" value="Submit"></center></span></div>
</form>
<div class="clearfix"></div>
Sevlet文件的代码 - contact.java
public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException
{String email=request.getParameter("email");
response.setContentType("text/html");
PrintWriter out=response.getWriter();
try{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","");
st=con.createStatement();
int i=st.executeUpdate("insert into contact values('"+name+"','"+email+"',"+mo+",'"+msg+"')");
if(i>0)
{RequestDispatcher rd=request.getRequestDispatcher("index.jsp");
rd.forward(request, response);}
else{
out.println("please Feel again");
RequestDispatcher rd=request.getRequestDispatcher("contact.jsp");