「java接受邮件」java接受邮件解决自动已读问题

博主:adminadmin 2022-11-23 21:00:33 194

今天给各位分享java接受邮件的知识,其中也会对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接受邮件的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。