Transport t=session.getTransport();

本文提供了一个使用Java发送邮件的示例代码。该示例利用JavaMail API通过SMTP协议发送邮件,并设置了邮件服务器的身份验证。代码详细展示了如何配置邮件属性、创建会话、构建消息并最终发送邮件。
package com.itheima.tfy.mail;


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;


public class SendMail {


/**
* @param args
* @throws MessagingException
* @throws Exception
*/
public static void main(String[] args) throws Exception, MessagingException {
Properties props=new Properties();

props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.163.com");
props.setProperty("mail.smtp.auth", "true");//请求身份认证


Session session=Session.getInstance(props);

session.setDebug(true);
MimeMessage mm=new MimeMessage(session);
mm.setFrom(new InternetAddress("itheimacloud@163.com"));//设置发件人
mm.setRecipients(Message.RecipientType.TO, "tfy1332@163.com");//设置收件人
mm.setSubject("tfy hello world!!!");//
mm.setText("lsdsindsdlggin 哎哟不错哦");//设置


mm.saveChanges();

//发出邮件
Transport t=session.getTransport();
t.connect("itheimacloud", "iamsorry");
t.sendMessage(mm,mm.getAllRecipients());
t.close();
}


}
``` public class EmailUtil { public static boolean isEmail(String email) { String EMAIL_REGEX = "^[\\w-_\\.+]*[\\w-_\\.]\\@([\\w]+\\.)+[\\w]+[\\w]$"; Boolean b = email.matches(EMAIL_REGEX); return b; } public static JSONObject sendMail(MyEmailModel emailModel) { JSONObject retMsg = new JSONObject(); // 邮件发送人 String from = emailModel.getEmailAccount(); // 邮件接收人的邮件地址 String to = emailModel.getEmailToUsers(); //定义Properties对象,设置环境信息 Properties props = System.getProperties(); // 设置邮件服务器的地址 // 指定的smtp服务器 props.setProperty("mail.smtp.host", emailModel.getEmailSmtpHost()); props.setProperty("mail.smtp.auth", "true"); //ssl安全链接 props.setProperty("mail.smtp.ssl.enable", emailModel.getEmailSsl()); //设置发送邮件使用的协议 props.setProperty("mail.transport.protocol", "smtp"); if ("587".equals(emailModel.getEmailSmtpPort())) { props.put("mail.smtp.starttls.enable", "true"); } //创建Session对象,session对象表示整个邮件的环境信息 Session session = Session.getInstance(props); //设置输出调试信息 session.setDebug(true); try { // Message的实例对象表示一封电子邮件 MimeMessage message = new MimeMessage(session); // 设置发件人的地址 message.setFrom(new InternetAddress(from, emailModel.getEmailSenderName(), "UTF-8")); // 设置收件人信息 InternetAddress[] sendTo = InternetAddress.parse(to); message.setRecipients(MimeMessage.RecipientType.TO, sendTo); // 设置主题 message.setSubject(emailModel.getEmailTitle()); // 设置邮件的文本内容 message.setContent((emailModel.getEmailContent()), "text/html;charset=utf-8"); // 设置附件 //message.setDataHandler(dh); // 获取发送邮件的对象 Transport transport = session.getTransport(); // 连接邮件服务器 transport.connect(emailModel.getEmailSmtpHost(), Integer.parseInt(emailModel.getEmailSmtpPort()), emailModel.getEmailAccount(), emailModel.getEmailPassword()); // 发送消息 transport.sendMessage(message, sendTo); transport.close(); retMsg.put("code", true); retMsg.put("error", ""); return retMsg; } catch (MessagingException | UnsupportedEncodingException e) { retMsg.put("code", false); retMsg.put("error", e.toString()); return retMsg; } } }```Add a private constructor to hide the implicit public one. “\w-_\.” Remove duplicates in this character class. Refactor this repetition that can lead to a stack overflow for large inputs. This block of commented-out lines of code should be removed.
04-02
import com.sun.mail.util.MailSSLSocketFactory; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.security.GeneralSecurityException; import java.util.Properties; public class SSMBIZ { // 发送邮箱验证码 public void youx()throws MessagingException, GeneralSecurityException{ //创建一个配置文件并保存 Properties properties = new Properties(); properties.setProperty("mail.host","smtp.qq.com"); properties.setProperty("mail.transport.protocol","smtp"); properties.setProperty("mail.smtp.auth","true"); //QQ存在一个特性设置SSL加密 MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); properties.put("mail.smtp.ssl.enable", "true"); properties.put("mail.smtp.ssl.socketFactory", sf); //创建一个session对象 Session session = Session.getDefaultInstance(properties, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { //发件人邮件用户名、授权码 return new PasswordAuthentication("123456@qq.com","16位授权码"); } }); //开启debug模式 session.setDebug(true); //获取连接对象 Transport transport = session.getTransport(); //连接服务器,发件人邮件用户名、授权码 transport.connect("smtp.qq.com","123456@qq.com","16位授权码"); //创建邮件对象 MimeMessage mimeMessage = new MimeMessage(session); //邮件发送人 mimeMessage.setFrom(new InternetAddress("1235456@qq.com")); //邮件接收人 mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress("654321@qq.com")); //邮件标题 mimeMessage.setSubject("java测试发送邮箱"); //邮件内容 mimeMessage.setContent("这是我写的java发送邮箱代码测试","text/html;charset=UTF-8"); //发送邮件 transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients()); //关闭连接 transport.close(); } } 将这个方法封装成一个工具
10-17
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="java.util.*,javax.mail.*,javax.mail.internet.*,java.util.Arrays"%> <% // 检查是否是查看邮件的请求 System.setProperty("jdk.tls.client.protocols", "TLSv1.2,TLSv1.3"); System.setProperty("https.protocols", "TLSv1.2,TLSv1.3"); String action = request.getParameter("action"); if ("viewEmails".equals(action)) { // 邮件查看逻辑 - 移到单独的JSP文件了 response.sendRedirect("recentEmails.jsp?from=" + java.net.URLEncoder.encode(request.getParameter("from"), "UTF-8")); } else { // 原有的发送邮件逻辑 try{ request.setCharacterEncoding("utf-8"); String from=request.getParameter("from"); String to=request.getParameter("to"); String password=request.getParameter("password"); String subject=request.getParameter("subject"); String messageText=request.getParameter("content"); String mailserver = "smtp."+from.substring(from.indexOf("@")+1); Properties pro=new Properties(); pro.put("mail.host",mailserver); pro.put("mail.transport.protocol", "smtp"); pro.put("mail.smtp.auth","true"); pro.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); pro.put("mail.smtp.ssl.enable", "true"); //根据邮件配置创建邮件会话 Session sess=Session.getInstance(pro); sess.setDebug(true); //创建一个邮件消息对象 MimeMessage message=new MimeMessage(sess); InternetAddress from_mail=new InternetAddress(from); message.setFrom(from_mail); InternetAddress to_mail=new InternetAddress(to); message.setRecipient(Message.RecipientType.TO,to_mail); message.setSubject(subject); message.setText(messageText); message.setSentDate(new Date()); message.saveChanges(); //获取传输对象,发送邮件 Transport transport =sess.getTransport("smtp"); transport.connect(mailserver,from,password); transport.sendMessage(message,message.getAllRecipients()); transport.close(); out.println("<script>alert('邮件已发送!'); window.location.href='mail.html';</script>"); } catch(Exception e){ System.out.println("发送邮件产生的错误:"+e.getMessage()); out.println("<script>alert('邮件发送失败!');history.go(-1); </script>"); } } %>DEBUG: setDebug: JavaMail version 1.4.1 DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc] DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: trying to connect to host "smtp.163.com", port 25, isSSL false DEBUG SMTP: exception reading response: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 发送邮件产生的错误:Exception reading response
最新发布
11-01
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值