Java发送邮件

Java发送邮件,第1张

JAVA邮件发送的大致过程是这样的的:

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。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/242315.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存