使用JavaMail來發信
1.簡單的發信功能
=== mailInput.jsp ===
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Mail Input</title>
<h1>Send Mail</h1>
<form method="post" action="sendMail.jsp">
From Email:<input type="text" name="from" value="" /><br>
To Email :<input type="text" name="to" value=""><br>
Subject :<input type="text" name="subject" value=""><br>
Content :<textarea name="content" cols="80" rows="6"></textarea><br>
<input type="submit" value="Send" name="send" />
<input type="reset" value="Reset" name="reset" />
</form>
2.需要使用幾個jar檔,activation.jar , mail.jar
剩下的說明寫在程式碼裡
=== sendMail.jsp ===
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import="javax.mail.*" %>
<%@ page import="javax.mail.internet.*" %>
<%@ page import="javax.activation.*" %>
<%@ page import="java.util.*,java.io.*" %>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Send Mail</title>
<%
InternetAddress[] address = null;
request.setCharacterEncoding("UTF-8");
String mailhost = "smtp.pchome.com.tw";
String from = request.getParameter("from");
String to = request.getParameter("to");
String subject = request.getParameter("subject");
String content = request.getParameter("content");
boolean sessionDebug = true;
String userName="XXXXX";//your id
String password = "XXXX";//your password
try {
java.util.Properties props = System.getProperties();
props.put("mail.smtp.host",mailhost);
props.put("mail.smtp.auth", "true");
Authenticator auth = new javax.mail.Authenticator() {
String userName="XXXXX";//your id
String password = "XXXXX";//your password
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(userName, password);
}
};
javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props,auth);
mailSession.setDebug(sessionDebug);
Message msg = new MimeMessage(mailSession);
// set mail from
msg.setFrom(new InternetAddress(from));
// set to email
address = InternetAddress.parse(to,false);
msg.setRecipients(Message.RecipientType.TO, address);
// set mail subject
msg.setSubject(subject);
// set send date
msg.setSentDate(new Date());
// set content
msg.setText(content);
// Get Transport use userName and password
Transport trans = mailSession.getTransport("smtp");
trans.connect(userName, password);
trans.send(msg);
%>Send OK<%
}
catch (Exception ex) {
out.println(ex);
}
%>
這位大大請問我依照你的源碼下去做
在mailInput.jsp輸入完畢按下送出
會出現HTTP Status 500
org.apache.jasper.JasperException: Unable to compile class for JSP
我用apache TOMCAT 6.0.18 + JDK1.7.0.21
煩請大大解惑!!
我是顯示:
javax.mail.AuthenticationFailedException: 535 5.7.8 Error: authentication failed: authentication failure
我在username: 使用username@pchome.com.tw或username的格式都顯示以上訊息.
我在pchome的網頁上已用帳號密碼輸入過,確認可以.但用上方程式登入就不行,