gpt4 book ai didi

java - 在 jsp 中创建联系表单?

转载 作者:行者123 更新时间:2023-11-29 05:41:13 27 4
gpt4 key购买 nike

我可以使用以下代码和使用 Javamail API 发送电子邮件,通过它我可以使用“FROM”作为我的“yahoo 电子邮件 ID”发送到任何电子邮件 ID。代码:

mailFORM.html

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Mail form in html</title>
</head>
<body>
<table border="1" width="50%" cellpadding="0" cellspacing="0">
<tr>
<td width="100%">
<form method="POST" action="mail.jsp">
<table border="1" width="100%" cellpadding="0" cellspacing="0">
<h1>Mail API</h1>
<tr>
<td width="50%"><b>To:</b></td>
<td width="50%"><input type="text" name="to" size="30"></td>
</tr>
<tr>
<td width="50%"><b>From:</b></td>
<td width="50%"><input type="text" name="from" size="30"></td>
</tr>
<tr>
<td width="50%"><b>Subject:</b></td>
<td width="50%"><input type="text" name="subject" size="30"></td>
</tr>
<tr>
<td width="50%"><b>Description:</b></td>
<td width="50%"><textarea name="description" type="text"
cols="40" rows="15" size=100>
</textarea>
</td>
</tr>
<tr>
<td><p><input type="submit" value="Send Mail" name="sendMail"></td>
</tr>
</table>
</p>
</form>
</td>
</tr>
</table>
</body>
</html>

邮件.jsp

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@ page language="java" import="javax.naming.*,java.io.*,javax.mail.*,
javax.mail.internet.*,com.sun.mail.smtp.*"%>
<html>
<head>
<title>sending mail using contactus form</title>
</head>
<body>
<%
try{
Session mailSession = Session.getInstance(System.getProperties());
Transport transport = new SMTPTransport(mailSession,new URLName("smtp.mail.yahoo.com"));
transport = mailSession.getTransport("smtps");
transport.connect("smtp.mail.yahoo.com",465,"myyahooid@yahoo.com","myyahoopassword");
MimeMessage m = new MimeMessage(mailSession);
m.setFrom(new InternetAddress(%><%request.getParameter("from")%><%));
Address[] toAddr = new InternetAddress[] {
new InternetAddress(%><%request.getParameter("to")%><%)
};
m.setRecipients(javax.mail.Message.RecipientType.TO, toAddr );
m.setSubject(%><%request.getParameter("subject")%><%);
m.setSentDate(new java.util.Date());
m.setContent(%><%request.getParameter("description")%><%, "text/plain");

transport.sendMessage(m,m.getAllRecipients());
transport.close();
out.println("Thanks for sending mail!");
}
catch(Exception e){
out.println(e.getMessage());
e.printStackTrace();
}
%>
</body>

现在,我想创建一个简单的 CONTACTUS 表单,出于显而易见的原因,我将从“mailFORM.html”文件中删除“TO”字段。因为我只希望任何访问者访问我的网站并通过输入 FROM、NAME、SUBJECT 和描述向“mycompanyid@domain.com”发送电子邮件。

那么如何解决这个输入用户名和密码的问题。因为我无法创建我在此处输入密码的代码。我无法为不同的 smtp 创建单独的代码...因为 VISITIR 访问我的网站联系页面可以通过输入他/她来自任何域的电子邮件来填写表格,例如 gmail、yahoo 等。

总而言之,我只想创建这样的表单(采用任何匿名网站),它将详细信息发送到公司的特定电子邮件 ID,如“mycompanyid@domain.com”
http://www.tutorialspoint.com/about/contact_us.htm

最佳答案

在您的 JSP 文件中硬编码您的 To email id,但最好避免在 JSP 中编写您的 Java 代码,应该只编写方法调用。

private final String TO_EMAIL = "something@domain.com";

查看我的代码,它适用于所有 SMTPS。

package com.naveed.workingfiles;

import org.apache.commons.mail.DefaultAuthenticator;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.MultiPartEmail;

public class Mail {
String senderID;
String senderPassword;
String hostName;
int portNumber;
String attachmentPath;
String subject;
String body;
String cc;
String bcc;


// #=============================================================================================#
public String getBcc() {
return bcc;
}

// #=============================================================================================#
public void setBcc(String bcc) {
this.bcc = bcc;
}

// #=============================================================================================#
public String getCc() {
return cc;
}

// #=============================================================================================#
public void setCc(String cc) {
this.cc = cc;
}

// #=============================================================================================#
public String getBody() {
return body;
}

// #=============================================================================================#
public void setBody(String body) {
this.body = body;
}

// #=============================================================================================#
public String getSubject() {
return subject;
}

// #=============================================================================================#
public void setSubject(String subject) {
this.subject = subject;
}

// #=============================================================================================#

public String getSenderID() {
return senderID;
}

// #=============================================================================================#
public void setSenderID(String senderID) {
this.senderID = senderID;
}

public String getSenderPassword() {
return senderPassword;
}

// #=============================================================================================#
public void setSenderPassword(String senderPassword) {
this.senderPassword = senderPassword;
}

// #=============================================================================================#
public String getHostName() {
return hostName;
}

// #=============================================================================================#
public void setHostName(String hostName) {
this.hostName = hostName;
}

// #=============================================================================================#
public int getPortNumber() {
return portNumber;
}

// #=============================================================================================#
public void setPortNumber(int portNumber) {
this.portNumber = portNumber;
}

// #=============================================================================================#
public String getAttachmentPath() {
return attachmentPath;
}

// #=============================================================================================#
public void setAttachmentPath(String attachmentPath) {
this.attachmentPath = attachmentPath;
}

// #=============================================================================================#
public void sendMail(String receiverId) {

try {
// this below commented line for the HTML body text
// MultiPartEmail htmlEmail = new HtmlEmail();
// OR
// HtmlEmail email = new HtmlEmail();

MultiPartEmail email = new MultiPartEmail();
// setting the port number
email.setSmtpPort(getPortNumber());
// authenticating the user
email.setAuthenticator(new DefaultAuthenticator(getSenderID(),
getSenderPassword()));
// email.setDebug(true);
email.setSSL(true);
// setting the host name
email.setHostName(getHostName());
// setting the rciever id

email.addTo(receiverId);

// check for user enterd cc or not
if (getCc() != null) {
// add the cc
email.addCc(getCc());
}
// check for user enterd bcc or not
if (getBcc() != null) {
// add the bcc
email.addBcc(getBcc());
}
// setting the sender id
email.setFrom(getSenderID());
// setting the subject of mail
email.setSubject(getSubject());
// setting message body
email.setMsg(getBody());
// email.setHtmlMsg("<h1>"+getBody()+"</h1>");

// checking for attachment attachment
if (getAttachmentPath() != null) {
// add the attachment
EmailAttachment attachment = new EmailAttachment();
attachment.setPath(getAttachmentPath());
attachment.setDisposition(EmailAttachment.ATTACHMENT);
email.attach(attachment);
}

// send the email
email.send();
// System.out.println("Mail sent!");
} catch (Exception e) {
// System.out.println("Exception :: " + e);
e.printStackTrace();

}
}// sendmail()
}// mail

只有您需要保存所有相应的域详细信息(主机名、端口),基于用户电子邮件设置所有 setter 。下载所有需要的库。

关于java - 在 jsp 中创建联系表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17505796/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com