admin管理员组文章数量:1663684
大致分为两类——工具类,测试类
工具类——先设置服务器,发送端口,身份验证并且建立安全连接,输入登录帐号密码,然后设置发件人收件人、主题编码格式等,具体代码如下:
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.sun.mail.util.MailSSLSocketFactory;
import java.security.GeneralSecurityException;
import java.util.Properties;
public class MailUtil {
/**
* 发送邮件
* @param to 给谁发
* @param text 发送内容
*/
public static void send_mail(String to,String text) throws MessagingException {
//创建连接对象 连接到邮件服务器
Properties properties =new Properties();
//设置发送邮件的基本参数
//发送邮件服务器
properties.put("mail.smtp.host", "smtp.qq");
//接收邮件的服务器
//properties.put("mail.smtp.host", "smtp.exmail.qq");
//发送端口,通常是25
properties.put("mail.smtp.port", "25");
//是否要求身份验证
properties.put("mail.smtp.auth", "true");
//使用 STARTTLS安全连接
//properties.put("mail.smtp.starttls.enable","true");
//设置发送邮件的账号和密码
Session session = Session.getInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
//两个参数分别是发送邮件的账户和密码
return new PasswordAuthentication("邮箱帐号@qq","密码");
}
});
//创建邮件对象
Message message = new MimeMessage(session);
//设置发件人
message.setFrom(new InternetAddress("邮箱帐号@qq"));
//设置收件人
message.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
//设置主题
message.setSubject("这是一份测试邮件");
//设置邮件正文 第二个参数是邮件发送的类型
message.setContent(text,"text/html;charset=UTF-8");
//发送一封邮件
Transport.send(message);
}
}
测试类:接收收件人的邮箱帐号,编写测试内容,代码如下:
import java.util.Scanner;
import javax.mail.MessagingException;
public class Text {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入邮箱:");
String name=input.next();
System.out.println("请输入内容:");
String a=input.next();
try {
MailUtil.send_mail(name, a);
System.out.println("邮件发送成功!");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
设置邮箱的安全性:
1、进入邮箱中(如QQ邮箱):
2、点击邮箱首页之后的设置:
3、点击账户,进入账户之后如下所示位置:
3、点击开启服务中的POP3/SMTP服务,如果是关闭,点击开启:
4、将授权码记下,点击确定即可,然后在上述代码中的登录时输入的邮箱帐号密码出填写此授权码(注:填写邮箱对应的密码没有用)
备注:若是其他邮箱也可按照相同步骤设置,代码中只需修改对应的服务器地址即可,有解释不当之处,敬请见谅,欢迎指出,我好加以改正,谢谢
版权声明:本文标题:Java发送邮箱——QQ邮箱 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1729999795a1218716.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论