|
|
|
Java - JSP อยากทราบวิธีส่งอีเมลไปยังผู้รับหลายคนในการส่งครั้งเดียวครับ |
|
|
|
|
|
|
|
คือผมทำหน้าเว็บที่มีฟอร์ม Contact us ให้ user ติดต่อสอบถามไปยังบริษัทครับ
เมื่อกดส่งข้อมูลที่ฟอร์มแล้ว จะทำการบันทึกลงฐานข้อมูลและส่งอีเมลล์ไปผู้ที่เกี่ยวข้องของบริษัทซึง่มีหลายคน
ตอนนี้มผมทำบันทึกลงฐานข้อมมูล กับส่งอีเมลล์ไปยังผู้รับได้เพียงคนเดียวครับ แล้วก็เสานำไปยังหัวหน้าแผนกได้แล้ว
อยากทราบวิธีที่ทำให้ส่งไปทีเดียวพร้อมกันหลายๆคนครับ อยากทราบว่าจะเพิ่มตรงไหนดีครับ
ไฟล์จัดการฐานข้อมูลและส่งอีเมล contactSaveAndSendEmail.java
Code (Java)
package contact;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Date;
import java.text.SimpleDateFormat;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class servletContact
*/
@WebServlet("/servletContact")
public class servletContact extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
String fullName = new String(request.getParameter("txtFormName").getBytes("ISO8859_1"),"UTF-8");
System.out.println(fullName);
String nameCompany = new String(request.getParameter("txtFormCompany").getBytes("ISO8859_1"),"UTF-8");
String address = new String(request.getParameter("txtFormAddress").getBytes("ISO8859_1"),"UTF-8");
String tel = new String(request.getParameter("txtFormTel").getBytes("ISO8859_1"),"UTF-8");
String fax = new String(request.getParameter("txtFormFax").getBytes("ISO8859_1"),"UTF-8");
String email = new String(request.getParameter("txtFormEmail").getBytes("ISO8859_1"),"UTF-8");
String subject = new String(request.getParameter("txtFormSubject").getBytes("ISO8859_1"),"UTF-8");
String message = new String(request.getParameter("txtFormMessage").getBytes("ISO8859_1"),"UTF-8");
Date now = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String datetime = df.format(now);
// Sending Email.......................................................................
String host = "smtp.gmail.com";
String port = "587";
String user = "[email protected]";
String pass = "xxxxxxxxxxx";
String recipient = "[email protected]";
String recipientCC = "[email protected]";
String resultMessage = "";
System.out.println(message);
try {
EmailUtility.sendEmail(host, port, user, pass, recipient, recipientCC, subject,
message);
resultMessage = "The e-mail was sent successfully";
} catch (Exception ex) {
ex.printStackTrace();
resultMessage = "There were an error: " + ex.getMessage();
} finally {
System.out.println(resultMessage);
}
//Insert Database
String sql = "INSERT INTO contact(name, name_company, address, tel, fax, email, subject, message, date_contact) " +
"values ( '"+fullName+"', '"+nameCompany+"', '"+address+"', '"+tel+"', '"+fax+"', '"+email+"', '"+subject+"', '"+message+"', '"+datetime+"')";
Connection con = null;
PreparedStatement pst = null;
try{
con = DBConnect.getConnection();
pst = con.prepareStatement(sql);
pst.executeUpdate();
}
catch(SQLException e) {
throw new ServletException(e);
}
finally {
if (pst != null) {
try {
pst.close();
} catch (SQLException ignore) {
}
}
if (con != null) {
try {
con.close();
} catch (SQLException ignore) {
}
}
}
}
}
ไฟล์คลาสการส่งอีเมลล์ EmailUtility.java
Code (Java)
package contact;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* A utility class for sending e-mail messages
* @author www.codejava.net
*
*/
public class EmailUtility {
public static void sendEmail(String host, String port,
final String userName, final String password, String toAddress, String toCC,
String subject, String message) throws AddressException,
MessagingException {
// sets SMTP server properties
Properties properties = new Properties();
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.port", port);
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
// creates a new session with an authenticator
Authenticator auth = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName, password);
}
};
Session session = Session.getInstance(properties, auth);
// creates a new e-mail message
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(userName));
InternetAddress[] toAddresses = { new InternetAddress(toAddress) };
InternetAddress[] toCCC = { new InternetAddress(toCC) };
msg.setRecipients(Message.RecipientType.TO, toAddresses);
msg.setRecipients(Message.RecipientType.CC, toCCC);
msg.setSubject(subject);
msg.setSentDate(new Date());
msg.setText(message);
// sends the e-mail
Transport.send(msg);
}
}
Tag : Java, JAVA, JSP
|
|
|
|
|
|
Date :
2013-06-04 10:58:19 |
By :
lnwsit |
View :
2261 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
บรรทัดที่ 49
Code (Java)
String recipient = "[email protected];[email protected];................";
ใช้วิธีการวนลูปต่อ string ก็ได้ในกรณี address อยู่ใน array หรือฐานข้อมูล
|
|
|
|
|
Date :
2013-06-04 11:04:58 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้พวก BCC น่ะครับ
|
|
|
|
|
Date :
2013-06-04 11:39:50 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Java and Send Mail (JavaMail)
|
|
|
|
|
Date :
2013-09-01 11:03:53 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|