「javaqq邮件发送」JAVA实现邮件发送

博主:adminadmin 2022-12-31 09:45:07 777

今天给各位分享javaqq邮件发送的知识,其中也会对JAVA实现邮件发送进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何使用Java发送qq邮件

方法:

1.前提准备工作:

首先,邮件的发送方要开启POP3 和SMTP服务--即发送qq邮件的账号要开启POP3 和SMTP服务

2.开启方法:

登陆qq邮箱

3.点击 设置

4.点击—-账户

5.找到:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 —点击开启

6.送短信 —–点击确定

7.稍等一会,很得到一个授权码! –注意:这个一定要记住,一会用到

8.点击保存修改 —OK 完成

9.java 测试代码:

package cn.cupcat.test;

import java.util.Properties;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMessage.RecipientType;

public class SendmailUtil {

public static void main(String[] args) throws AddressException, MessagingException {

Properties properties = new Properties();

properties.put("mail.transport.protocol", "smtp");// 连接协议

properties.put("mail.smtp.host", "smtp.qq.com");// 主机名

properties.put("mail.smtp.port", 465);// 端口号

properties.put("mail.smtp.auth", "true");

properties.put("mail.smtp.ssl.enable", "true");//设置是否使用ssl安全连接 ---一般都使用

properties.put("mail.debug", "true");//设置是否显示debug信息 true 会在控制台显示相关信息

//得到回话对象

Session session = Session.getInstance(properties);

// 获取邮件对象

Message message = new MimeMessage(session);

//设置发件人邮箱地址

message.setFrom(new InternetAddress("123456789@qq.com"));

//设置收件人地址 message.setRecipients( RecipientType.TO, new InternetAddress[] { new InternetAddress("987654321@qq.com") });

//设置邮件标题

message.setSubject("这是第一封Java邮件");

//设置邮件内容

message.setText("内容为: 这是第一封java发送来的邮件。");

//得到邮差对象

Transport transport = session.getTransport();

//连接自己的邮箱账户

transport.connect("123456789@qq.com", "vvctybgbvvophjcj");//密码为刚才得到的授权码

//发送邮件 transport.sendMessage(message, message.getAllRecipients());

}

}

10.运行就会发出邮件了。。。。

下面是我收到邮件的截图,当然我把源码中的邮件地址都是修改了,不是真实的,你们测试的时候,可以修改能你们自己的邮箱。最后,祝你也能成功,如果有什么问题,可以一起讨论!

注意事项

得到的授权码一定要保存好,程序中要使用

java 关于邮件发送,接受地址填的是163或者QQ的,但不知道为啥总错误

1.自己电脑不需要配smtp,你是用163的smtp

2.553是收件人地址无法解析的错误,在addRecipients那一行断点,看看toAddr传过来的参数是不是有问题

java邮箱发送报错

package com.gpt.util.email;

import java.io.FileOutputStream;

import java.util.List;

import java.util.Properties;

import javax.activation.DataHandler;

import javax.activation.FileDataSource;

import javax.mail.Message;

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 com.gpt.util.PropertiesUtil;

/**

*

* Java邮件发送类,使用javaMail类进行邮件发送

* by CKQ

* */

public class MailUtil {

//邮件服务器

private static String mail_host=(String)PropertiesUtil.getMap().get("mail_host");//"smtp.yeah.net";

//邮件服务器端口

private static int port=Integer.valueOf((String)PropertiesUtil.getMap().get("mail_port"));//25;

//邮件协议

private static String mail_transport_protocol=(String)PropertiesUtil.getMap().get("mail_transport_protocol");//"smtp";

//需要smtp验证

private static String mail_smtp_auth=(String)PropertiesUtil.getMap().get("mail_smtp_auth");//"true";

//发送人用户名

private static String username=(String)PropertiesUtil.getMap().get("mail_username");//"wujianhui321@yeah.net";

//发送人密码

private static String password=(String)PropertiesUtil.getMap().get("mail_password");//"xxxxxx";

//发送纯文本邮件

public static boolean sendSimpleMail(String from,String to,String subject,String content) {

boolean result=true;

try {

Properties prop=new Properties();

prop.setProperty("mail.host", mail_host);

prop.setProperty("mail.transport.protocol", mail_transport_protocol);

prop.setProperty("mail.smtp.auth", mail_smtp_auth);

//经验证qq邮箱需要添加一下两条记录,否则失败,其他暂时不知道,这是安全协议所需要的类 add by CKQ 2017-7-19

prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

prop.setProperty("mail.smtp.socketFactory.port", String.valueOf(port));

Session session=Session.getInstance(prop);

//设置为debug模式 ,生产环境应该关掉

session.setDebug(true);

//获得transport对象

Transport ts=session.getTransport();

//连上邮件服务器

ts.connect(mail_host,port, username,password);

//创建邮件

MimeMessage message=new MimeMessage(session);

//设置发送人

message.setFrom(new InternetAddress(from));

//设置接收人

message.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));

//设置主题

message.setSubject(subject);

//设置内容

message.setContent(content,"text/html;charset=UTF-8");

//发送邮件

ts.sendMessage(message, message.getAllRecipients());

//关闭连接

ts.close();

} catch (Exception e) {

e.printStackTrace();

result=false;

}

return result;

}

//发送带图片的邮件

public static boolean sendImageMail(String from,String to,String subject,String absoluteImagePath) throws Exception{

boolean result=true;

try {

//获取图片后缀

String suffix=absoluteImagePath.substring(absoluteImagePath.lastIndexOf(".")+1,absoluteImagePath.length()) ;

//定义contentId,图片到达邮件服务器后会有一个contentId,然后html中可以引用这个contentId显示该图片。

String contentId="1."+suffix;

//内容模板

String content="带图片的邮件img src='cid:"+contentId+"'/";

Properties prop=new Properties();

prop.setProperty("mail.host", mail_host);

prop.setProperty("mail.transport.protocol", mail_transport_protocol);

prop.setProperty("mail.smtp.auth", mail_smtp_auth);

Session session=Session.getInstance(prop);

//设置为debug模式 ,生产环境应该关掉

session.setDebug(true);

//获得transport对象

Transport ts=session.getTransport();

//连上邮件服务器

ts.connect(mail_host,port, username,password);

//创建邮件

MimeMessage message=new MimeMessage(session);

//设置发送人

message.setFrom(new InternetAddress(from));

//设置接收人

message.setRecipient(javax.mail.Message.RecipientType.TO, new InternetAddress(to));

//设置标题

message.setSubject(subject);

//创建正文

MimeBodyPart text=new MimeBodyPart();

//设置内容

text.setContent(content,"text/html;charset=UTF8");

//创建一个图片

MimeBodyPart image=new MimeBodyPart();

//从本地absoluteImagePath文件读取

DataHandler dh=new DataHandler(new FileDataSource(absoluteImagePath));

image.setDataHandler(dh);

//设置图片的contentId

image.setContentID(contentId);

//创建容器描述数据关系

javax.mail.internet.MimeMultipart mm=new MimeMultipart();

//容器添加内容

mm.addBodyPart(text);

//容器添加图片

mm.addBodyPart(image);

mm.setSubType("related");

message.setContent(mm);

message.saveChanges();

//存储创建的邮件

message.writeTo(new FileOutputStream("F:/imagemail.eml"));

ts.sendMessage(message, message.getAllRecipients());

ts.close();

} catch (Exception e) {

e.printStackTrace();

result=false;

}

return result;

}

//发送带附件的邮件

public static boolean sendAttachMail(String from,String to,String subject,String content,ListString absoluteFilePathList) throws Exception{

boolean result=true;

try {

Properties prop=new Properties();

prop.setProperty("mail.host", mail_host);

prop.setProperty("mail.transport.protocol", mail_transport_protocol);

prop.setProperty("mail.smtp.auth", mail_smtp_auth);

Session session=Session.getInstance(prop);

//设置为debug模式 ,生产环境应该关掉

//session.setDebug(true);

//获得transport对象

Transport ts=session.getTransport();

//连接邮件服务器

ts.connect(mail_host,port, username,password);

//创建邮件

MimeMessage message=new MimeMessage(session);

//设置发送人

message.setFrom(new InternetAddress(from));

//设置接收人

message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));

//设置主题

message.setSubject(subject);

//创建正文

MimeBodyPart text=new MimeBodyPart();

//设置正文内容

text.setContent(content,"text/html;charset=UTF-8");

//创建容器描述关系

MimeMultipart mp=new MimeMultipart();

//添加正文

mp.addBodyPart(text);

for(int i=0;iabsoluteFilePathList.size();i++){

//创建附件

MimeBodyPart attach=new MimeBodyPart();

DataHandler dh=new DataHandler(new FileDataSource(absoluteFilePathList.get(i)));

attach.setDataHandler(dh);

attach.setFileName(dh.getName());

//容器添加附件

mp.addBodyPart(attach);

}

mp.setSubType("mixed");

message.setContent(mp);

message.saveChanges();

//保存邮件至F盘

message.writeTo(new FileOutputStream("F:/attachMail.eml"));

ts.sendMessage(message, message.getAllRecipients());

ts.close();

} catch (Exception e) {

e.printStackTrace();

result=false;

}

return result;

}

}

关于java定时发送邮件,类似于QQ邮箱中的定时发送功能

建议方法:

如果你的java会死亡/失去控制, 请用系统的任务调度来发送邮件;

如果你的java由jboss等之类的托管, 用jboss内部的任务调度来发送邮件.

方法1:

Windws 平台, 在task中添加一个 任务, 命令行执行java 代码即可, 这样可靠性由操作系统保证;

Linux等平台, 直接 crontab 处理即可.

关于javaqq邮件发送和JAVA实现邮件发送的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。