首先Java发送邮件需要用到JavaMail,先到Oracle官网上下载好最新版本的JavaMail(刚才看了一下,最新是1.5.3),把下载的这个jar文件放到classpath里(如果是Web项目,就放到WEB-INF/lib目录下。
JavaMail主要支持发送纯文本的和html格式的邮件。
发送html格式的邮件的一个例程如下:
import javax.mail.internet.InternetAddressimport javax.mail.internet.MimeMessage
import javax.mail.internet.MimeUtility
import javax.mail.Session
import javax.mail.MessagingException
import javax.mail.Transport
public class SendHtmlMail {
public static void sendMessage(String smtpHost,
String from, String to,
String subject, String messageText)
throws MessagingException,java.io.UnsupportedEncodingException {
// Step 1: Configure the mail session
System.out.println("Configuring mail session for: " + smtpHost)
java.util.Properties props = new java.util.Properties()
props.setProperty("mail.smtp.auth", "true")//指定是否需要SMTP验证
props.setProperty("mail.smtp.host", smtpHost)//指定SMTP服务器
props.put("mail.transport.protocol", "smtp")
Session mailSession = Session.getDefaultInstance(props)
mailSession.setDebug(true)//是否在控制台显示debug信息
// Step 2: Construct the message
System.out.println("Constructing message - from=" + from + " to=" + to)
InternetAddress fromAddress = new InternetAddress(from)
InternetAddress toAddress = new InternetAddress(to)
MimeMessage testMessage = new MimeMessage(mailSession)
testMessage.setFrom(fromAddress)
testMessage.addRecipient(javax.mail.Message.RecipientType.TO, toAddress)
testMessage.setSentDate(new java.util.Date())
testMessage.setSubject(MimeUtility.encodeText(subject,"gb2312","B"))
testMessage.setContent(messageText, "text/htmlcharset=gb2312")
System.out.println("Message constructed")
// Step 3: Now send the message
Transport transport = mailSession.getTransport("smtp")
transport.connect(smtpHost, "webmaster", "password")
transport.sendMessage(testMessage, testMessage.getAllRecipients())
transport.close()
System.out.println("Message sent!")
}
public static void main(String[] args) {
String smtpHost = "localhost"
String from = "webmaster@mymail.com"
String to = "mfc42d@sohu.com"
String subject = "html邮件测试" //subject javamail自动转码
StringBuffer theMessage = new StringBuffer()
theMessage.append("<h2><font color=red>这倒霉孩子</font></h2>")
theMessage.append("<hr>")
theMessage.append("<i>年年失望年年望</i>")
try {
SendHtmlMail.sendMessage(smtpHost, from, to, subject, theMessage.toString())
}
catch (javax.mail.MessagingException exc) {
exc.printStackTrace()
}
catch (java.io.UnsupportedEncodingException exc) {
exc.printStackTrace()
}
}
}
JavaMail是封装了很多邮件操作的,所以使用起来不很困难,建议你到JavaMail官网看一下API或下载Java Doc API文档。
要使用Javascript,先创建Date对象的实例(也叫做对象的引用)。创建实例的语法有如下三种。
var newDateObj = new Date()var newDateObj = new Date(dateVal)
var newDateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]])
例如,var D = new Date()。
方法1,是无参数调用,创建后对象D中含有计算机的系统日期和时间。
方法2,dateVal参数是数值或表示日期时间的字符串。如果是数字值,dateVal 表示指定日期与 1970 年 1 月 1 日午夜间全球标准时间的毫秒数。如果是字符串,则 dateVal 按照 parse 方法中的规则进行解析。dateVal 参数也可以是从某些 ActiveX(R) 对象返回的 VT_DATE 值。
方法3,用参数直接为新建对象提供日期和时间的数据。
建立了Date对象以后,就可以使用get方法取得日期或时间的值,返回值一般是数值型的。用set方法给一个Date型对象设置数据。Date的方法函数的语法一般格式为:
D.getXXXX() 和 D.setXXXX( variable list)其中XXXX是相关的字符串,即Year, Month, Date, day,Hours, Minutes, Seconds, Milliseconds,Time, FullYear 等。get方法一般都是无参数的。variable list是set方法要求的参数列表。详细语法请参考下面的例程。
在Javascript中还有使用全球标准时间的方法,其语法是在上面的语法形式的XXXX前面加上UTC三个字母。
此外,还有几个方法。
1,getTimezoneOffset()方法 返回当地时间和UTC时间的时差(分钟数)。
2,getVarDate( )方法 返回T_DATE 值。
3,toLocaleString( )方法 返回表示本地时间的字符串。
4,toUTCString() 方法 返回表示全球标准时间的字符串。
Date.parse(dateVal)
解析一个包含日期的字符串,并返回该日期与 1970 年 1 月 1 日午夜之间所间隔的毫秒数。其中 dateVal 是一个包含以诸如 "Jan 5, 1996 08:47:00" 的格式表示的日期的字符串,或者是一个从 ActiveX(R) 对象或其他对象中获取的 VT_DATE 值。
Date.UTC(year, month, day[, hours[, minutes[, seconds[,ms]]]])
返回全球标准时间UTC(或 GMT)的 1970年1月1日到所指定日期之间所间隔的毫秒数。