java实现发送邮件功能

java实现发送邮件功能,第1张

要实现邮件发送功能需要导入包: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")

}

}

}

要两个java文件 还有一个mail.jar是不是只能用javamail谁也不敢说

第一个:

public class Constant {

public static final String mailAddress ="用户名@163.com"

public static final String mailCount ="用户名"

public static final String mailPassword ="密码"

public static final String mailServer ="smtp.163.com"

//pukeyouxintest,

}

第二个:

import java.util.Date

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

public class SendMail {

/**

* 发送简单邮件

* @param str_from:发件人地址

* @param str_to:收件人地址

* @param str_title:邮件标题

* @param str_content:邮件正文

*/

public static void send(String str_from,String str_to,String str_title,String str_content) {

// str_content="<a href='www.163.com'>html元素</a>"//for testing send html mail!

try {

//建立邮件会话

Properties props=new Properties()//用来在一个文件中存储键-值对的,其中键和值是用等号分隔的,

//存储发送邮件服务器的信息

props.put("mail.smtp.host",Constant.mailServer)

//同时通过验证

props.put("mail.smtp.auth","true")

//根据属性新建一个邮件会话

Session s=Session.getInstance(props)

s.setDebug(true)//有他会打印一些调试信息。

//由邮件会话新建一个消息对象

MimeMessage message=new MimeMessage(s)

//设置邮件

InternetAddress from= new InternetAddress(str_from)//pukeyouxintest2@163.com

message.setFrom(from)//设置发件人的地址

//

// //设置收件人,并设置其接收类型为TO

InternetAddress to=new InternetAddress(str_to)//pukeyouxintest3@163.com

message.setRecipient(Message.RecipientType.TO, to)

//设置标题

message.setSubject(str_title)//java学习

//设置信件内容

// message.setText(str_content)//发送文本邮件 //你好吗?

message.setContent(str_content, "text/htmlcharset=gbk")//发送HTML邮件 //<b>你好</b><br><p>大家好</p>

//设置发信时间

message.setSentDate(new Date())

//存储邮件信息

message.saveChanges()

//发送邮件

Transport transport=s.getTransport("smtp")

//以smtp方式登录邮箱,第一个参数是发送邮件用的邮件服务器SMTP地址,第二个参数为用户名,第三个参数为密码

transport.connect(Constant.mailServer,Constant.mailCount,Constant.mailPassword)

//发送邮件,其中第二个参数是所有已设好的收件人地址

transport.sendMessage(message,message.getAllRecipients())

transport.close()

} catch (Exception e) {

e.printStackTrace()

}

}

public static void main(String[] args) {

//测试用的,你吧你想写的内容写上去就行

send(Constant.mailAddress,"收件人邮箱","标题","<b>内容</b>")

}

}

然后把mail.jar导入,就可以了,我用的是163 的,其他的吧相应的服务器改一下就行了

你只是发邮件不是做邮件服务器吧?这样的话 在linux和window没有区别....不然java都不好意思说自己是跨平台的了

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工具类发送邮件。

参考地址http://www.cnblogs.com/codeplus/archive/2011/10/30/2229391.html


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存