1、构建一个继承自javax.mail.Authenticator的具体类,并重写里面的getPasswordAuthentication()方法。此类是用作登录校验的,以确保你对该邮箱有发送邮件的权利。
2、构建一个properties文件,该文件中存放SMTP服务器地址等参数。
3、通过构建的properties文件和javax.mail.Authenticator具体类来创建一个javax.mail.Session。Session的创建,就相当于登录邮箱一样。剩下的自然就是新建邮件。
4、构建邮件内容,一般是javax.mail.internet.MimeMessage对象,并指定发送人,收信人,主题,内容等等。
5、使用javax.mail.Transport工具类发送邮件。
要实现邮件发送功能需要导入包:mail.jar/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package org.demo.action
import java.util.Properties
import javax.mail.Message
import javax.mail.Session
import javax.mail.Transport
import javax.mail.internet.InternetAddress
import javax.mail.internet.MimeMessage
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
import org.apache.struts.action.Action
import org.apache.struts.action.ActionForm
import org.apache.struts.action.ActionForward
import org.apache.struts.action.ActionMapping
import org.demo.form.DemoForm
public class DemoAction extends Action {
private static final String CONTENT_TYPE = "test/htmlcharset=GB2312"
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DemoForm demoForm = (DemoForm) form
System.out.println("标题是" + demoForm.getBiaoti())
System.out.println("内容是" + demoForm.getNeirong())
try {
response.setContentType(CONTENT_TYPE)
String smtphost = "smtp.nj.headware.cn"// 发送邮件服务器
String user = "q0000015369"// 邮件服务器登录用户名
String password = "Queshuwen26"// 邮件服务器登录密码
String from = "q0000015369@nj.headware.cn"//
String to = "c0000016205@nj.headware.cn"// 收件人邮件地址
String subject = demoForm.getBiaoti()// 邮件标题
String body = demoForm.getNeirong()// 邮件内容
Properties props = new Properties()
props.put("mail.smtp.host", smtphost)
props.put("mail.smtp.auth", "true")
Session ssn = Session.getInstance(props, null)
MimeMessage message = new MimeMessage(ssn)
InternetAddress fromAddress = new InternetAddress(from)
message.setFrom(fromAddress)
InternetAddress toAddress = new InternetAddress(to)
message.addRecipient(Message.RecipientType.TO, toAddress)
message.setSubject(subject)
message.setText(body)
Transport transport = ssn.getTransport("smtp")
transport.connect(smtphost, user, password)
transport.sendMessage(message, message
.getRecipients(Message.RecipientType.TO))
// transport.send(message)
transport.close()
return mapping.findForward("succ")
} catch (Exception e) {
e.printStackTrace()
return mapping.findForward("fail")
}
}
}
smtp啥意思呢?SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。
它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器
socket是啥意思呢?
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)