Gmail邮件通过JavaMail发送(不带附件与带一个附件)


在Java编程环境中,使用JavaMail库发送电子邮件是一个常见的任务,特别是在需要自动化或程序化通信时。本教程将详细讲解如何使用JavaMail API在Gmail上发送邮件,包括不带附件和带有一个附件的情况。 JavaMail是一个开源的Java库,它提供了用于处理邮件的标准API。在使用JavaMail发送邮件前,你需要在项目中引入相关的依赖包。在描述中提到的"javamail"可能是指JavaMail的jar包,这是进行邮件操作的基础。确保你的项目已包含以下两个关键的JavaMail库: 1. `javax.mail-api.jar`:提供邮件API的接口定义。 2. `javamail-imap.jar`或`javax.mail.jar`:包含实现这些接口的具体类,用于实际的邮件操作。 接下来,我们将分步骤介绍如何通过JavaMail发送Gmail邮件。 **步骤一:配置属性** 在发送邮件之前,需要设置一些基本属性,如SMTP服务器、端口、用户名和密码。对于Gmail,SMTP服务器是`smtp.gmail.com`,默认使用SSL安全协议,端口为`465`或`587`。代码如下: ```java Properties props = new Properties(); props.put("mail.smtp.host", "smtp.gmail.com"); props.put("mail.smtp.socketFactory.port", "465"); props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.auth", "true"); props.put("mail.smtp.port", "465"); ``` **步骤二:创建Session** 使用设置好的属性创建一个`Session`对象,这个对象将被用来创建`Transport`实例,用于实际的邮件发送。 ```java Session session = Session.getInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(GMAIL_USERNAME, GMAIL_PASSWORD); } }); ``` 这里的`GMAIL_USERNAME`和`GMAIL_PASSWORD`分别是你的Gmail账号和密码。 **步骤三:构建邮件** 使用`MimeMessage`类创建一个邮件对象,并设置发件人、收件人、主题和内容。 ```java MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(FROM_ADDRESS)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(TO_ADDRESS)); message.setSubject(SUBJECT); message.setText(BODY); ``` **步骤四:添加附件(可选)** 如果需要发送附件,可以使用`MimeMultipart`来组合文本内容和附件。创建一个新的`MimeBodyPart`,设置附件内容,并将其添加到`MimeMultipart`中。 ```java MimeBodyPart attachmentPart = new MimeBodyPart(); attachmentPart.attachFile(ATTACHMENT_FILE_PATH); MimeMultipart multipart = new MimeMultipart("related"); multipart.addBodyPart(messagePart); multipart.addBodyPart(attachmentPart); message.setContent(multipart); ``` 这里的`ATTACHMENT_FILE_PATH`是附件的本地路径。 **步骤五:发送邮件** 使用`session`创建的`Transport`对象发送邮件。 ```java Transport transport = session.getTransport(); transport.connect(GMAIL_USERNAME, GMAIL_PASSWORD); transport.sendMessage(message, message.getAllRecipients()); transport.close(); ``` 注意,Gmail有时会阻止非标准应用程序的登录,为了解决这个问题,你可能需要在Gmail账户的安全设置中开启“不够安全的应用的访问”。 以上就是使用JavaMail API通过Gmail发送邮件的基本过程,无论是无附件还是有附件,主要区别在于是否创建和添加`MimeBodyPart`以及`MimeMultipart`。通过理解和应用这些概念,你可以灵活地构建满足需求的邮件系统。






















- 1

- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整

- 粉丝: 387
- 资源: 6万+
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- springboot110作业管理系统=LW2.zip
- springboot148江理工文档管理系统的设计与实现LW.zip
- 阿博图书馆管理系统.zip
- 毕业设计成绩管理系统的设计与实现.zip
- 毕业就业信息管理系统的设计与实现.zip
- 毕业LW管理系统.zip
- 编程训练系统设计与实现.zip
- 毕业设计系统的开发.zip
- 毕业生实习与就业管理系统的设计与实现.zip
- 餐饮管理系统的设计与实现.zip
- 城镇保障性住房管理系统.zip
- 厨艺交流平台的设计与实现代码.zip
- 大创管理系统.zip
- 大学城水电管理系统.zip
- 大学生就业需求分析系统.zip
- 大学生科创项目在线管理系统的设计与实现.zip


