Java对接谷歌邮箱-代码及其谷歌邮箱账号配置

本文介绍了如何使用Java对接谷歌Gmail邮箱,以及遇到AuthenticationFailedException错误时的解决步骤,包括检查Gmail账号设置,允许不太安全的应用程序访问,以解决535-5.7.8错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先登录Gmail账号

找到这个地方

 然后查看所有配置

然后贴代码:

private static String from = "[email protected]";//发送者的谷歌邮箱
private static String password = "password";//谷歌邮箱密码
public static boolean sendMailGMail(String to, String content) {
   return gmailSender(from,password,to,"标题", content);
}


private static void gmailSsl(Properties props) {
		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
		props.put("mail.debug", "true");
		props.put("mail.smtp.host", "smtp.gmail.com");
		props.put("mail.smtp.ssl.enable", "true");
		props.put("mail.smtp.socketFactory.class", SSL_FACTORY);
		props.put("mail.smtp.port", "465");
		//props.put("mail.smtp.port", "587");
		props.put("mail.smtp.
<think>我们正在使用Java实现邮箱推送功能。根据引用[1]中的示例,我们可以使用commons-email库来发送邮件。以下是实现步骤: 1. 引依赖:在Maven项目中,我们需要添加commons-email依赖。 2. 配置邮箱:需要有一个邮箱账号,并开启SMTP服务,获取授权码(不是邮箱密码,而是授权码)。 3. 编写发送邮件的代码:使用Email类(如SimpleEmail)来设置邮件服务器、认证信息、邮件内容等。 注意:引用[1]中提到了QQ邮箱配置,我们以QQ邮箱为例,但其他邮箱类似(只需更改主机名和端口)。 步骤: 1. 引依赖(如果使用Maven): ```xml <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.5</version> <!-- 注意:1.4版本较旧,这里使用1.5,但可以根据实际情况调整 --> </dependency> ``` 2. 获取邮箱授权码(以QQ邮箱为例): - 录QQ邮箱,点击设置->账户->开启POP3/SMTP服务(或者IMAP/SMTP服务),按照提示发送短信,获取授权码。 3. 编写Java代码: 示例代码: ```java import org.apache.commons.mail.SimpleEmail; import org.apache.commons.mail.EmailException; public class EmailSender { public static void main(String[] args) { // 邮箱服务器设置 String hostName = "smtp.qq.com"; // QQ邮箱的SMTP服务器地址 int smtpPort = 465; // 使用SSL的端口,QQ邮箱要求 String username = "[email protected]"; // 发件人邮箱 String password = "your_authorization_code"; // 授权码,不是邮箱密码 // 创建邮件对象 SimpleEmail email = new SimpleEmail(); email.setHostName(hostName); email.setSmtpPort(smtpPort); email.setSSLOnConnect(true); // 启用SSL加密 email.setAuthentication(username, password); // 设置认证 try { email.setFrom(username); // 设置发件人 email.addTo("[email protected]"); // 设置收件人 email.setSubject("测试邮件主题"); // 设置邮件主题 email.setMsg("这是一封测试邮件,用于测试Java邮件发送功能。"); // 设置邮件内容 email.send(); // 发送邮件 System.out.println("邮件发送成功!"); } catch (EmailException e) { e.printStackTrace(); System.err.println("邮件发送失败: " + e.getMessage()); } } } ``` 注意: - 替换`[email protected]`为你的QQ邮箱地址。 - 替换`your_authorization_code`为你的QQ邮箱的授权码。 - 收件人邮箱`[email protected]`替换为实际收件人邮箱- 如果使用其他邮箱(如163、Gmail等),需要更改对应的SMTP服务器地址和端口,并确保开启SMTP服务。 常见邮箱的SMTP服务器设置: - QQ邮箱:smtp.qq.com,端口465(SSL)或587(TLS) - 163邮箱:smtp.163.com,端口465(SSL) - Gmail:smtp.gmail.com,端口465(SSL)或587(TLS) 如果遇到连接问题,请检查网络是否允许访问SMTP服务器,以及邮箱的SMTP服务是否已开启。 另外,如果使用Gmail,可能需要降低安全设置(允许不够安全的应用)或使用应用专用密码(如果启用了两步验证)。 以上代码使用了`SimpleEmail`,只能发送纯文本邮件。如果需要发送HTML邮件或带附件的邮件,可以使用`HtmlEmail`或`MultiPartEmail`。 示例:发送HTML邮件 ```java import org.apache.commons.mail.HtmlEmail; // ... 类似设置服务器和认证 HtmlEmail htmlEmail = new HtmlEmail(); htmlEmail.setHostName(hostName); htmlEmail.setSmtpPort(smtpPort); htmlEmail.setSSLOnConnect(true); htmlEmail.setAuthentication(username, password); htmlEmail.setFrom(username); htmlEmail.addTo("[email protected]"); htmlEmail.setSubject("HTML邮件测试"); htmlEmail.setHtmlMsg("<h1>欢迎</h1><p>这是一封<strong>HTML</strong>邮件!</p>"); // 发送 htmlEmail.send(); ``` 希望这个示例能帮助你实现邮箱推送功能。 §§相关问题§§ 1. 如何发送带附件的邮件? 2. 如何配置企业邮箱(如腾讯企业邮、阿里企业邮箱)发送邮件? 3. 邮件发送失败常见原因及解决方法?</think>### Java 实现邮箱推送的代码示例 以下是使用 Java 实现邮箱推送的完整代码示例,基于 Apache Commons Email 库实现: #### 1. 添加 Maven 依赖 ```xml <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.5</version> </dependency> ``` #### 2. 核心代码实现 ```java import org.apache.commons.mail.SimpleEmail; import org.apache.commons.mail.EmailException; public class EmailSender { // 邮箱配置参数(需替换为实际值) private static final String SMTP_HOST = "smtp.qq.com"; // 邮箱服务商SMTP地址 private static final int SMTP_PORT = 465; // SSL加密端口 private static final String USERNAME = "[email protected]"; // 发件邮箱 private static final String PASSWORD = "your_authorization_code"; // 邮箱授权码 private static final String FROM_NAME = "系统通知"; // 发件人显示名称 public static boolean sendEmail(String toAddress, String subject, String content) { try { SimpleEmail email = new SimpleEmail(); // 基本配置 email.setHostName(SMTP_HOST); email.setSslSmtpPort(String.valueOf(SMTP_PORT)); email.setSSLOnConnect(true); // 启用SSL加密 email.setAuthentication(USERNAME, PASSWORD); // 邮件内容 email.setFrom(USERNAME, FROM_NAME); email.addTo(toAddress); email.setSubject(subject); email.setMsg(content); // 发送邮件 email.send(); return true; } catch (EmailException e) { System.err.println("邮件发送失败: " + e.getMessage()); return false; } } public static void main(String[] args) { // 测试发送邮件 boolean success = sendEmail( "[email protected]", // 收件邮箱 "系统验证码通知", // 邮件主题 "您的验证码是: 5832,有效期5分钟" // 邮件内容 ); System.out.println(success ? "邮件发送成功!" : "邮件发送失败"); } } ``` #### 3. 关键配置说明 1. **邮箱授权码获取**(以 QQ 邮箱为例): - 录 QQ 邮箱 → 设置 → 账户 → 开启 `POP3/SMTP` 服务 - 按提示发送短信后获取 **16位授权码**(非邮箱密码)[^1] 2. **常用邮箱服务器配置**: | 邮箱类型 | SMTP 服务器 | 端口 | 加密方式 | |----------|-------------|------|----------| | QQ 邮箱 | `smtp.qq.com` | 465 | SSL | | 163 邮箱 | `smtp.163.com` | 465 | SSL | | Gmail | `smtp.gmail.com` | 587 | TLS | 3. **企业邮箱配置**: - 使用企业专属 SMTP 服务器(如 `smtp.exmail.qq.com`) - 端口通常为 465(SSL)或 587(TLS) #### 4. 高级功能扩展 ```java // 发送HTML格式邮件 HtmlEmail htmlEmail = new HtmlEmail(); htmlEmail.setHtmlMsg("<h1>标题</h1><p style='color:red'>红色文字</p>"); // 添加附件 MultiPartEmail email = new MultiPartEmail(); email.attach(new FileDataSource("report.pdf")); // 设置抄送/密送 email.addCc("[email protected]"); email.addBcc("[email protected]"); ``` #### 5. 常见错误处理 - **认证失败**:检查授权码是否正确,邮箱是否开启 SMTP - **连接超时**:检查防火墙是否屏蔽 465/587 端口 - **554 DT:SPM**:邮件内容被识别为垃圾邮件,调整内容或添加白名单 > **安全提示**:避免在代码中硬编码密码,推荐使用环境变量或配置中心存储敏感信息[^1]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值