导航:首页 > 编程语言 > java发送qq邮箱

java发送qq邮箱

发布时间:2022-08-26 14:42:31

javamail 用qq邮箱发送一直报错

估摸着你是没有设置使用stl传输,认证属性设置中增加stl协议传输试试,如果还是不行,可以仔细看看javamail官网,有配置的demo。

❷ java发送邮件报错的问题

你得给你的qq邮箱设置密码,密码不是你的qq密码,需要自己设置

❸ java发邮件,密码都正确就是发不出去,有的就能发出去

以qq邮箱为例:在收发件邮箱的“设置”里打开“账户”设置界面,找到POP3/IMAP......这些服务设置的地方,确保SMTP等服务开启,才能接收到

如下图

❹ java如何实现批量发送邮件

1.要想效率发邮件可以用多线程每个线程发指定批量的邮件
2.要想不被查封为垃圾邮件,这个就有很多地方要注意了
邮件的内容不要含有太多图片信息,内容尽量简洁,不要涉及一些淫秽色情的东西。
不要向同一个人发送同样的邮件。
发邮件时ip最好用代理每发送个50封邮件就换个ip,因为邮件服务器也会检查你ip在这么短时间发了这么多邮件也会认为你是恶意群发。
最好能加入邮件接收者的白名单或订阅名单

❺ Java收发邮件过程中具体的功能是怎么实现的

1.SMTP协议

用户连上邮件服务器后,要想给它发送一封电子邮件,需要遵循一定的通迅规则,SMTP协议就是用于定义这种通讯规则的。

因而,通常我们也把处理用户smtp请求(邮件发送请求)的邮件服务器称之为SMTP服务器。(25)

2.POP3协议

同样,用户若想从邮件服务器管理的电子邮箱中接收一封电子邮件的话,他连上邮件服务器后,也需要遵循一定的通迅格式,POP3协议用于定义这种通讯格式。

因而,通常我们也把处理用户pop3请求(邮件接收请求)的邮件服务器称之为POP3服务器。(110)


下图用于演示两帐户相互发送邮件的过程

packagecn.e.dlmu.send;

importjava.util.Properties;

importjavax.activation.DataHandler;
importjavax.activation.FileDataSource;
importjavax.mail.Message;
importjavax.mail.Session;
importjavax.mail.Transport;
importjavax.mail.internet.InternetAddress;
importjavax.mail.internet.MimeBodyPart;
importjavax.mail.internet.MimeMessage;
importjavax.mail.internet.MimeMultipart;
importjavax.mail.internet.MimeUtility;

publicclassSendMail{

publicstaticvoidmain(String[]args)throwsException{



Propertiesprop=newProperties();
//连接的邮件服务器的主机名
prop.setProperty("mail.smtp.host","smtp.sina.com.cn");
//发送邮件的协议
prop.setProperty("mail.transport.protocol","smtp");
//是否向邮件服务器提交认证
prop.setProperty("mail.smtp.auth","true");

//创建session
Sessionsession=Session.getInstance(prop);
session.setDebug(true);
//得到transport
Transportts=session.getTransport();
//连接邮件服务器
ts.connect("smtp.sina.com.cn","[email protected]","xxxxx");
//发送邮件
MimeMessagemessage=createMessage(session);
ts.sendMessage(message,message.getAllRecipients());
ts.close();
}

(Sessionsession)throwsException{

MimeMessagemessage=newMimeMessage(session);

//设置邮件的基本信息
message.setFrom(newInternetAddress("[email protected]"));
message.setRecipient(Message.RecipientType.TO,newInternetAddress("[email protected]"));
message.setSubject("test");

//正文
MimeBodyParttext=newMimeBodyPart();
//设置charaset可以解决中文正文的乱码问题,内嵌可下载的图片
text.setContent("你好xxx,<imgsrc='c:/dog.jpg'/>测试成功!<br/><imgsrc='cid:aaa.jpg'/>","text/html;charset=gbk");
//图片1
MimeBodyPartimage=newMimeBodyPart();
image.setDataHandler(newDataHandler(newFileDataSource("src/88.jpg")));
image.setContentID("aaa.jpg");
//附件
MimeBodyPartattach=newMimeBodyPart();
DataHandlerdh=newDataHandler(newFileDataSource("src/javamail架包.jar"));
attach.setDataHandler(dh);
//解决文件中文乱码问题
attach.setFileName(MimeUtility.encodeText(dh.getName()));

//描述正文和图片的关系
MimeMultipartmp=newMimeMultipart();
mp.addBodyPart(text);
mp.addBodyPart(image);
mp.setSubType("related");

//描述正文和附件
MimeMultipartmp2=newMimeMultipart();
mp2.addBodyPart(attach);
//将正文封装为一个body
MimeBodyPartcontent=newMimeBodyPart();
content.setContent(mp);

mp2.addBodyPart(content);
mp2.setSubType("mixed");

message.setContent(mp2);
message.saveChanges();

returnmessage;
}

}

❻ Java Mail发送邮件

连接的错误,smtp是需要登录服务器的使用的是base64的编码格式。没有代码也不太清楚 你哪里错了

❼ 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");//"[email protected]";
//发送人密码
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,List<String> 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;i<absoluteFilePathList.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 mail发送给多个QQ邮箱接收者时,每个QQ邮箱都收到两份相同的邮件。

List<String>too=newArrayList<String>();
too.add("****@163.com");
// too.add("******@163.com");
InternetAddress[]to_mail=newInternetAddress[too.size()];
for(inti=0;i<too.size();i++){//设置接收邮件人的地址
to_mail[i]=newInternetAddress(String.valueOf(too.get(i)));
}
messageHelper.setTo(to_mail);

不要用for循环 用internetAddress[] . 我前几天也是跟你一样.

❾ 用java写一个邮件发送代码

public boolean mainto()
{
boolean flag = true;

//建立邮件会话
Properties pro = new Properties();
pro.put("mail.smtp.host","smtp.qq.com");//存储发送邮件的服务器
pro.put("mail.smtp.auth","true"); //通过服务器验证

Session s =Session.getInstance(pro); //根据属性新建一个邮件会话
//s.setDebug(true);

//由邮件会话新建一个消息对象
MimeMessage message = new MimeMessage(s);

//设置邮件
InternetAddress fromAddr = null;
InternetAddress toAddr = null;

try
{
fromAddr = new InternetAddress(451144426+"@qq.com"); //邮件发送地址
message.setFrom(fromAddr); //设置发送地址

toAddr = new InternetAddress("[email protected]"); //邮件接收地址
message.setRecipient(Message.RecipientType.TO, toAddr); //设置接收地址

message.setSubject(title); //设置邮件标题
message.setText(content); //设置邮件正文
message.setSentDate(new Date()); //设置邮件日期

message.saveChanges(); //保存邮件更改信息

Transport transport = s.getTransport("smtp");
transport.connect("smtp.qq.com", "451144426", "密码"); //服务器地址,邮箱账号,邮箱密码
transport.sendMessage(message, message.getAllRecipients()); //发送邮件
transport.close();//关闭

}
catch (Exception e)
{
e.printStackTrace();
flag = false;//发送失败
}

return flag;
}

这是一个javaMail的邮件发送代码,需要一个mail.jar

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

建议方法:

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

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

方法1:

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

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

阅读全文

与java发送qq邮箱相关的资料

热点内容
愿望清单app哪个好 浏览:457
安卓外放声音怎么解决 浏览:194
脉脉app干什么用的 浏览:357
拽姐是哪个app 浏览:858
云服务器删除了还有吗 浏览:232
macbook可以用单片机嘛 浏览:307
南阳php招聘 浏览:814
去哪里找按摩师很漂亮的app 浏览:818
86x99用简便算法计算 浏览:830
php截图flash 浏览:274
卸载联想app哪个好 浏览:721
php文字转图片 浏览:332
豆客后台怎么加密码 浏览:576
jpg转换pdf破解版 浏览:979
php基础书籍推荐 浏览:779
服务器与外网不通如何验证 浏览:353
电子版是不是就是文件夹 浏览:52
游戏属性文件加密 浏览:464
如何让安卓手机桌面图标下移 浏览:530
ubuntuphp5环境搭建 浏览:101