阿里云邮件推送一个大大大大的bug。Can not find endpoint to access.

博主在进行阿里云邮箱验证时遇到问题,邮件给出的aliyun-java-sdk-core包与短信的冲突,使用3.7.1版本会报找不到节点错误。排查后发现问题出在该jar包版本,将其改成3.0.0版本后,邮件能正常接收。记录此过程望帮助他人。

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

今天卡了一个bug,阿里云给的一个大坑!!!!!

因为之前是先做的短信验证,现在才做的邮箱验证,在一开始的时候,阿里云短信给出的jar包是这个:

<!--阿里云短信验证jar-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>3.7.1</version>
<!--注:如提示报错,先升级基础包版,无法解决可联系技术支持-->
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.1.0</version>
</dependency>

邮箱给出的是这两个jar包:

<!--邮箱验证jar包-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dm</artifactId>
<version>3.1.0</version>
</dependency>

由于邮件给出的aliyun-java-sdk-core包跟短信的已经冲突了,所以常规做法就是将邮件的冲突jar包去除掉,但是这两个给出的jar版本不一样,如果使用3.7.1这个版本的话,会一直报找不到节点的错误。

SDK.InvalidRegionId : Can not find endpoint to access.

一开始一位是邮件邮件工具类的问题,所以一直在看属性注入、邮件域名、模板等问题,换了别人的工具类、用测试类测试,问题依旧。网上找到的答案基本都是说代理ip问题,但是阿里云给出的java demo当中根本没有代理,所以一直很郁闷。

但是最后排查原来问题出现在这里,一个大大的坑,aliyun-java-sdk-core这个jar包3.7.1会导致出现异常。

后来将jar改成3.0.0版本后,邮件能正常接收成功:

被这个bug卡了一天,好心累。

记录一下,希望可以帮助到后面有需要的人。

### 如何在 TypeScript 项目中配置腾讯云邮件推送 #### 配置环境变量 为了安全地存储敏感信息,建议使用环境变量来保存API密钥和其他重要参数。创建`.env`文件并加入如下内容: ```bash TENCENT_SECRET_ID=your_secret_id_here TENCENT_SECRET_KEY=your_secret_key_here REGION=ap-guangzhou SENDER_MAIL=example@example.com RECIPIENT_MAIL=target@example.com ``` #### 安装依赖库 安装必要的Node.js模块以便于操作腾讯云服务。 ```shell npm install @tencentcloud/tmt-v20180321 tencentcloud-sdk-nodejs dotenv typescript ts-node --save ``` #### 初始化TypeScript设置 确保项目的根目录存在`tsconfig.json`用于定义编译选项。 ```json { "compilerOptions": { "target": "ES6", "module": "commonjs", "strict": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true } } ``` #### 创建发送邮件的服务类 编写一个简单的TypeScript程序来调用腾讯云SDK发送电子邮件通知。 ```typescript import * as sdk from 'tencentcloud-sdk-nodejs'; import * as dotenv from 'dotenv'; // 加载环境变量 dotenv.config(); const { TMTClient } = sdk.tmt.v20180321; async function sendEmail() : Promise<void> { const clientConfig = { credential: { secretId: process.env.TENCENT_SECRET_ID!, secretKey: process.env.TENCENT_SECRET_KEY! }, region: process.env.REGION!, profile: { httpProfile: { endpoint: "sms.tencentcloudapi.com" } } }; try { const client = new TMTClient(clientConfig); await client.SendMail({ FromEmailAddress: process.env.SENDER_MAIL!, Destination: [process.env.RECIPIENT_MAIL!], Subject: "Test Email via Tencent Cloud", Simple: { HtmlPart: "<h1>Hello, this is a test email sent by Tencent Cloud.</h1>", TextPart: "Hello, this is a test email sent by Tencent Cloud." } }); console.log('Email has been successfully sent.'); } catch (error) { console.error(`Failed to send email: ${JSON.stringify(error)}`); } } sendEmail(); ``` 此脚本会读取之前设定好的环境变量,并利用它们初始化腾讯云客户端实例;之后构建一封测试性质的HTML格式邮件并通过`SendMail()`方法发出请求给腾讯云服务器执行实际投递动作[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值