「javamail接收」javamail smtp

博主:adminadmin 2023-01-07 15:09:05 726

本篇文章给大家谈谈javamail接收,以及javamail smtp对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

怎么样使用JavaMail发送和接收邮件

public class MailTest {

//发送的邮箱 内部代码只适用qq邮箱

private static final String USER = "xxxxx@qq.com";

//授权密码 通过QQ邮箱设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务-开启POP3/SMTP服务获取

private static final String PWD = "xxxxx";

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[] {"xxxxx@qq.com"});

//抄送

// mail.setCc(new String[] {"xxxxx@qq.com","xxxxx@qq.com"});

//密送

//mail.setBcc(new String[] {"xxxxx@qq.com","xxxxx@qq.com"});

//发送附件列表 可以写绝对路径 也可以写相对路径(起点是项目根目录)

// mail.setFileList(new String[] {"D:\\aa.txt"});

//发送邮件

try {

mail.sendMessage();

System.out.println("发送邮件成功!");

} catch (Exception e) {

System.out.println("发送邮件失败!");

e.printStackTrace();

}

}

}

运用JavaMail收邮件怎么解决

javax.mail.Store:该类实现特定邮件协议(如POP3)上的读、写、监视、查找等操作。通过它的getFolder方法打开一个javax.mail.Folder。

javax.mail.Folder:该类用于描述邮件的分级组织,如收件箱、草稿箱。它的open方法打开分级组织,close方法关闭分级组织,getMessages方法获得分级组织中的邮件,getNewMessageCount方法获得分级组织中新邮件的数量,getUnreadMessageCount方法获得分级组织中未读邮件的数量

根据MimeMessage的getFrom和getRecipients方法获得邮件的发件人和收件人地址列表,得到的是InternetAddress数组,根据InternetAddress的getAddress方法获得邮件地址,根据InternetAddress的getPersonal方法获得邮件地址的个人信息。

MimeMessage的getSubject、getSentDate、getMessageID方法获得邮件的主题、发送日期和邮件的ID(表示邮件)。

通过MimeMessage的getContent方法获得邮件的内容,如果邮件是MIME邮件,那么得到的是一个Multipart的对象,如果是一共普通的文本邮件,那么得到的是BodyPart对象。Multipart可以包含多个BodyPart,而BodyPart本身又可以是Multipart。BodyPart的MimeType类型为“multipart/*”时,表示它是一个Mutipart。

javamail接收邮件报错

使用pop3j协议尝试以下,看可能好使不

这个报错是认证失败了,可能用户名密码出错。

认证失败,还可能是连续的访问,被邮件服务器拒绝了,过一会在尝试。

QQ邮箱 POP3 和 SMTP 服务器地址设置如下:

POP3服务器(端口110)pop.qq.com

SMTP服务器(端口25)  smtp.qq.com

SMTP服务器需要身份验证。

如果是设置POP3和SMTP的SSL加密方式,则端口如下:

imap服务器(端口993)

POP3服务器(端口995)

SMTP服务器(端口465或587)。

javamail接收的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javamail smtp、javamail接收的信息别忘了在本站进行查找喔。