「java接受邮件」java接受邮件解决自动已读问题
今天给各位分享java接受邮件的知识,其中也会对java接受邮件解决自动已读问题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java实现发送邮件功能
- 2、java里如何判断Email是否发送成功
- 3、如何在 java 发邮件中提供链接
- 4、用JavaMail接收邮件时如何判断邮件是否有附件
- 5、如何用java实现发送html格式的邮件
- 6、java如何获取邮箱中的发件箱,草稿箱,垃圾箱内容。
java实现发送邮件功能
要实现邮件发送功能需要导入包: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/html;charset=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里如何判断Email是否发送成功
package com.liuns.mail.test;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
public class MailTest {
//发送的邮箱 内部代码只适用qq邮箱
private static final String USER = "xxx@qq.com";
//授权密码 通过QQ邮箱设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务-开启POP3/SMTP服务获取
private static final String PWD = "xxx";
private String[] to;
private String[] cc;//抄送
private String[] bcc;//密送
private String[] fileList;//附件
private String subject;//主题
private String content;//内容,可以用html语言写
public void sendMessage() throws Exception {
// 配置发送邮件的环境属性
final Properties props = new Properties();
//下面两段代码是设置ssl和端口,不设置发送不出去。
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
//props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
// 表示SMTP发送邮件,需要进行身份验证
props.setProperty("mail.transport.protocol", "smtp");// 设置传输协议
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.qq.com");//QQ邮箱的服务器 如果是企业邮箱或者其他邮箱得更换该服务器地址
// 发件人的账号
props.put("mail.user", USER);
// 访问SMTP服务时需要提供的密码
props.put("mail.password", PWD);
// 构建授权信息,用于进行SMTP进行身份验证
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
// 用户名、密码
String userName = props.getProperty("mail.user");
String password = props.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
// 使用环境属性和授权信息,创建邮件会话
Session mailSession = Session.getInstance(props, authenticator);
// 创建邮件消息
MimeMessage message = new MimeMessage(mailSession);
BodyPart messageBodyPart = new MimeBodyPart();
Multipart multipart = new MimeMultipart();
// 设置发件人
InternetAddress form = new InternetAddress(
props.getProperty("mail.user"));
message.setFrom(form);
//发送
if (to != null) {
String toList = getMailList(to);
InternetAddress[] iaToList = new InternetAddress().parse(toList);
message.setRecipients(RecipientType.TO, iaToList); // 收件人
}
//抄送
if (cc != null) {
String toListcc = getMailList(cc);
InternetAddress[] iaToListcc = new InternetAddress().parse(toListcc);
message.setRecipients(RecipientType.CC, iaToListcc); // 抄送人
}
//密送
if (bcc != null) {
String toListbcc = getMailList(bcc);
InternetAddress[] iaToListbcc = new InternetAddress().parse(toListbcc);
message.setRecipients(RecipientType.BCC, iaToListbcc); // 密送人
}
message.setSentDate(new Date()); // 发送日期 该日期可以随意写,你可以写上昨天的日期(效果很特别,亲测,有兴趣可以试试),或者抽象出来形成一个参数。
message.setSubject(subject); // 主题
message.setText(content); // 内容
//显示以html格式的文本内容
messageBodyPart.setContent(content,"text/html;charset=utf-8");
multipart.addBodyPart(messageBodyPart);
//保存多个附件
if(fileList!=null){
addTach(fileList, multipart);
}
message.setContent(multipart);
// 发送邮件
Transport.send(message);
}
public void setTo(String[] to) {
this.to = to;
}
public void setCc(String[] cc) {
this.cc = cc;
}
public void setBcc(String[] bcc) {
this.bcc = bcc;
}
public void setSubject(String subject) {
this.subject = subject;
}
public void setContent(String content) {
this.content = content;
}
public void setFileList(String[] fileList) {
this.fileList = fileList;
}
private String getMailList(String[] mailArray) {
StringBuffer toList = new StringBuffer();
int length = mailArray.length;
if (mailArray != null length 2) {
toList.append(mailArray[0]);
} else {
for (int i = 0; i length; i++) {
toList.append(mailArray[i]);
if (i != (length - 1)) {
toList.append(",");
}
}
}
return toList.toString();
}
//添加多个附件
public void addTach(String fileList[], Multipart multipart) throws Exception {
for (int index = 0; index fileList.length; index++) {
MimeBodyPart mailArchieve = new MimeBodyPart();
FileDataSource fds = new FileDataSource(fileList[index]);
mailArchieve.setDataHandler(new DataHandler(fds));
mailArchieve.setFileName(MimeUtility.encodeText(fds.getName(),"UTF-8","B"));
multipart.addBodyPart(mailArchieve);
}
}
//以下是演示demo
public static void main(String args[]) {
MailTest mail = new MailTest();
mail.setSubject("java邮件");
mail.setContent("你好 这是第一个java 程序发送邮件");
//收件人 可以发给其他邮箱(163等) 下同
mail.setTo(new String[] {"xxx@qq.com"});
//抄送
// mail.setCc(new String[] {"xxx@qq.com","xxx@qq.com"});
//密送
//mail.setBcc(new String[] {"xxx@qq.com","xxx@qq.com"});
//发送附件列表 可以写绝对路径 也可以写相对路径(起点是项目根目录)
// mail.setFileList(new String[] {"D:\\aa.txt"});
//发送邮件
try {
mail.sendMessage();
System.out.println("发送邮件成功!");
} catch (Exception e) {
System.out.println("发送邮件失败!");
e.printStackTrace();
}
}
}
如何在 java 发邮件中提供链接
这是一个通过Java发送Email的例子,很多新手问道如何用JAVA发邮件,其实挺简单的,Java给我们提供有此方面的类库可以使用,以下就是一个例子:
view source
print?
001
import java.awt.*;
002
import java.awt.event.*;
003
import java.util.*;
004
import java.net.*;
005
import java.io.*;
006
import javax.swing.*;
007
public class MailTest {
008
public static
void main(String[]
args) {
009
JFrame frame = new
MailTestFrame();
010
frame.show();
011
}
012
}
013
class MailTestFrame extends JFrame implements ActionListener {
014
private BufferedReader in;
015
private PrintWriter out;
016
private JTextField from;
017
private JTextField to;
018
private JTextField
smtpServer;
019
private JTextArea message;
020
private JTextArea response;
021
022
public MailTestFrame() {
023
setTitle("MailTest");
024
setSize(300, 300);
025
addWindowListener(new WindowAdapter() {
026
public void windowClosing(WindowEvent e) {
027
System.exit(0);
028
}
029
});
030
getContentPane().setLayout(new GridBagLayout());
031
GridBagConstraints gbc = new GridBagConstraints();
032
// 当容器比组件要大时,只调整垂直方向组件的大小
033
gbc.fill = GridBagConstraints.HORIZONTAL;
034
gbc.weightx = 0;
035
gbc.weighty = 0;
036
037
gbc.weightx = 0;
038
add(new JLabel("发送地址:"), gbc, 0, 0, 1, 1);
039
gbc.weightx = 100;
040
from = new JTextField(20);
041
add(from, gbc, 1, 0, 1, 1);
042
gbc.weightx = 0;
043
add(new JLabel("收件地址:"), gbc, 0, 1, 1, 1);
044
gbc.weightx = 100;
045
to
= new JTextField(20);
046
add(to, gbc, 1, 1, 1, 1);
047
gbc.weightx = 0;
048
add(new JLabel("SMTP服务器:"), gbc,
0, 2, 1, 1);
049
gbc.weightx = 100;
050
smtpServer = new
JTextField(20);
051
add(smtpServer, gbc, 1, 2, 1, 1);
052
gbc.fill = GridBagConstraints.BOTH;
053
gbc.weighty = 100;
054
message = new JTextArea();
055
add(new JScrollPane(message), gbc, 0, 3, 2, 1);
056
response = new JTextArea();
057
add(new JScrollPane(response), gbc, 0, 4, 2, 1);
058
gbc.weighty = 0;
059
JButton sendButton = new JButton("发送");
060
sendButton.addActionListener(this);
061
JPanel buttonPanel = new JPanel();
062
buttonPanel.add(sendButton);
063
add(buttonPanel, gbc, 0, 5, 2, 1);
064
}
065
private void add(Component c, GridBagConstraints gbc, int x, int y, int w,
066
int h) {
067
gbc.gridx = x;
068
gbc.gridy = y;
069
gbc.gridwidth = w;
070
gbc.gridheight = h;
071
getContentPane().add(c, gbc);
072
}
073
public void actionPerformed(ActionEvent evt) {
074
// 异步机制,使得当所有的awt事件发生后才进行以下工作
075
SwingUtilities.invokeLater(new Runnable() {
076
public void run() {
077
sendMail();
078
}
079
});
080
}
081
public void sendMail() {
082
try {
083
Socket s = new Socket(smtpServer.getText(), 25);
084
out = new PrintWriter(s.getOutputStream());
085
in = new BufferedReader(new
InputStreamReader(s.getInputStream()));
086
String hostName = InetAddress.getLocalHost().getHostName();
087
send(null);
088
// 传送本机域名
089
send("HELO " + hostName);
090
// 传送发信者信箱名称
091
send("MAIL FROM: "
+ from.getText());
092
// 传送收信者信箱名称
093
send("RCPT TO: "
+ to.getText());
094
// 发送信箱数据,包括信头和信体
095
send("DATA");
096
out.println(message.getText());
097
// 发送结束标志
098
send(".");
099
s.close();
100
}
catch (IOException exception) {
101
response.append("Error:
" + exception);
102
}
103
}
104
public void send(String s) throws IOException {
105
if (s != null) {
106
response.append(s + "\n");
107
out.println(s);
108
out.flush();
109
}
110
String line;
111
if ((line = in.readLine())
!= null)
112
response.append(line + "\n");
113
}
114
}
转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦
用JavaMail接收邮件时如何判断邮件是否有附件
Multipart mp =null;
Part part=mp.getBodyPart(j);
String disposition = part.getDisposition();
if ((disposition !=null)
((disposition.equals(Part.ATTACHMENT)||
(disposition.equals(Part.INLINE)))))
{//saveFile(part.getFileName(),part.getInputStream());
System.out.println("there is a fujian");
}
如何用java实现发送html格式的邮件
首先Java发送邮件需要用到JavaMail,先到Oracle官网上下载好最新版本的JavaMail(刚才看了一下,最新是1.5.3),把下载的这个jar文件放到classpath里(如果是Web项目,就放到WEB-INF/lib目录下。
JavaMail主要支持发送纯文本的和html格式的邮件。
发送html格式的邮件的一个例程如下:
import javax.mail.internet.InternetAddress;
import 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/html;charset=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("h2font 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文档。
java如何获取邮箱中的发件箱,草稿箱,垃圾箱内容。
你想获取那个邮箱中的这些信息?这个是需要邮箱方进行配合的。
比如163邮箱,他们会提供一些公开接口,你可以调用这些接口来获取你想要的邮件信息。
想要同步也很简单,只要间隔很短的时间进行一次获取就可以了。
至于你要做其他处理,那就要看邮箱开放的接口是啥样的了。
如果邮箱不开放这么接口,那么你是获取不到邮件信息的。
java接受邮件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java接受邮件解决自动已读问题、java接受邮件的信息别忘了在本站进行查找喔。
发布于:2022-11-23,除非注明,否则均为
原创文章,转载请注明出处。