如何使用Java完成简单的电子邮件发送程序
使用Java完成一个简单的电子邮件发送程序的核心依赖是 JavaMail API。它允许你通过 SMTP 协议连接电子邮件服务器并发送电子邮件。下面一步一步地解释如何实现它。增加必要的依赖性 如果你使用 Maven 项目在 pom.xml 加入以下依赖javax.mail 包括发送邮件所需的核心类别。dependency groupIdcom.sun.mail/groupId artifactIdjavax.mail/artifactId version1.6.2/version /dependency如果是普通 Java 手动下载项目 javax.mail.jar 并添加到类路径中。配置邮件会话参数在发送电子邮件之前需要设置一些连接参数如 SMTP 安全连接是否启用服务器地址、端口等。常见邮箱的 SMTP 配置如下QQ邮箱smtp.qq.com端口 587启用 TLS163邮箱smtp.163.com端口 25 或 465SSLGmailsmtp.gmail.com端口 587代码中通过 Properties 设置这些参数Properties props new Properties(); props.put(mail.smtp.host, smtp.qq.com); props.put(mail.smtp.port, 587); props.put(mail.smtp.auth, true); props.put(mail.smtp.starttls.enable, true); // 启用 TLS 编写发送邮件的代码使用 Session 创建会话通过 Transport 发送邮件。完整示例代码import javax.mail.*; import javax.mail.internet.*; import java.util.Properties; public class EmailSender { public static void send(String to, String subject, String body) { String from your_emailqq.com; String password your_authorization_code; // 注意不是登录密码 Properties props new Properties(); props.put(mail.smtp.host, smtp.qq.com); props.put(mail.smtp.port, 587); props.put(mail.smtp.auth, true); props.put(mail.smtp.starttls.enable, true); Session session Session.getInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(from, password); } }); try { Message message new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject(subject); message.setText(body); Transport.send(message); System.out.println(”邮件已成功发送); } catch (MessagingException e) { e.printStackTrace(); } } public static void main(String[] args) { send(receiverexample.com, 测试邮件 “这是Java发送的测试邮件。); } catch (MessagingException e) { e.printStackTrace(); } } public static void main(String[] args) { send(receiverexample.com, “测试邮件” “这是Java发送的测试邮件。”); } }注QQ邮箱需要使用“授权码”而不是帐户密码登录。SMTP服务可以在邮箱设置中打开并获取授权码。处理常见问题如果发送失败检查以下几点是否可以访问网络 SMTP 服务器邮箱是否已打开 SMTP 服务使用的密码是否为授权代码(特别是 QQ、163 邮箱是否正确配置端口和协议TLS vs SSL防火墙或杀毒软件是否拦截连接基本上就是这样。掌握基本流程后可以扩展添加附件、发送HTML格式邮件、群发等功能。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2443827.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!