通过nginx转发调取阿里云api发送邮件

本文介绍如何配置Nginx转发阿里云邮件推送API,解决内网服务器无法直接发送邮件的问题。通过在局域网内的服务器上设置Nginx代理,将邮件发送请求转发至阿里云API,同时解决域名检测导致的访问失败。

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

最近公司有个需求要求监控系统运行,报错要求发邮件通知我们自己,但是有一个问题是服务器不能够访问外网所以直接发邮件的途径就直接不能用了,然后想到有一台可以访问外网的同局域网机器,就想能不能通过nginx去给我做转发,捣鼓了一个下午之后终于可以了!记录一下

根据阿里云发送邮件的api的来看域名是 :dm.aliyuncs.com  可以适应http或者https调用api 这里用http方式调用

然后nginx的目的是访问我这台机器指定端口我跳转到上面的域名去

阿里云邮件推送API示例:http://dm.aliyuncs.com/?Action=SingleSendMail&AccountName=test@example.com&ReplyToAddress=true&AddressType=1&ToAddress=test1@example.com&Subject=Subject&HtmlBody=body

改变后API示例http://dm.aliyuncs.com:8101/?Action=SingleSendMail&AccountName=test@example.com&ReplyToAddress=true&AddressType=1&ToAddress=test1@example.com&Subject=Subject&HtmlBody=body

 

首先配置nginx 访问8101端口转跳到 http://dm.aliyuncs.com

	server {
		listen 8101;

		location / {
			proxy_pass http://dm.aliyuncs.com;
			proxy_connect_timeout 5;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection "upgrade";
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $host;
			proxy_http_version 1.1;
		}
	}

然后试着访问了一下 :http://192.168.45.12:8101/?Action=SingleSendMail&AccountName=test@example.com&ReplyToAddress=true&AddressType=1&ToAddress=test1@example.com&Subject=Subject&HtmlBody=body

访问报错,原因可能是阿里云后台开启了域名检测

所以接下来修改服务器上的 hosts 文件 做本地的域名映射

在最下面添加     192.168.45.12        dm.aliyuncs.com

即你在本地访问 dm.aliyuncs.com 是会解析到 192.165.45.12 上

然后调用API http://dm.aliyuncs.com:8101/?Action=SingleSendMail&AccountName=test@example.com&ReplyToAddress=true&AddressType=1&ToAddress=test1@example.com&Subject=Subject&HtmlBody=body

就能成功了

 

主要改变就是在原链接上添加端口即可

 

如果不想修改链接 nginx 可以监听80端口 即可实现

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值