V2EX - 技术 |
- 基于 PHP 开发的外卖点餐网站
- CodedotAl/gpt-code-clippy: 开源 GitHub Copilot 实现
- 自建 smtp 发送服务中难点踩坑解决
- 关于 sqlx 等的纯 sql 库的不解的一点
Posted: 24 Jun 2022 06:46 AM PDT 介绍一个基于 php 的外卖订餐网站,包括前端和后台。 运行环境:Apache+PHP+Mysql源码地址https://github.com/geeeeeeeek/dingfanzu 代码说明
技术架构:后台 PHP+Mysql 前台 jQuery 、html 、CSS 、Bootstrap 网站结构:网站首页 place.html 菜品展示页 shop.html 个人中心:我的地址;余额;代金券;订单;我的积分;设置。 网站目录
界面预览首页点餐页面 |
CodedotAl/gpt-code-clippy: 开源 GitHub Copilot 实现 Posted: 24 Jun 2022 05:36 AM PDT |
Posted: 24 Jun 2022 05:24 AM PDT 必要性介绍 因为信息保密的需要,或者担心竞争对手获取和分析自己邮件中的商业秘密,有一些项目不方便使用腾讯、网易、Amazon 和 mailgun 等服务发送敏感信息。于是产生了自建 smtp 邮件服务器直接向外发送邮件的需求。 这里对自建 smtp 邮局对外发送邮件的一些坑进行总结,希望对需要的朋友有点帮助 smtp 协议简介 最新 SMTP 协议 RFC5321 地址: https://tools.ietf.org/html/rfc5321 smtp ,简单邮件传输协议,是一个 80 年代起就广泛使用的基于 TCP 使用 ASCII 字符来传输信息的协议。 网络主机 A 向 B 发送信息,A 可以连接 B 的 25 端口,然后明文发起一串 ascii 字符的会话,达到将信息从主机 A 传输到 B 的任务。 出现多媒体的时候,就用 MIME 格式来表示二进制数据。 SMTP 会话例子 C client S Server C telnet S 的 25 端口 S: 220 smtp.abc.com ESMTP Postfix C: HELO me.com S: 250 smtp.abc.com, OK C: MAIL FROM:<bob@me.com> S: 250 Ok C: RCPT TO:<alice@abc.com> S: 250 Ok C: DATA S: 354 End data with <CR><LF>.<CR><LF> C: From: "Bob" <bob@me.com> C: To: Alice <alice@abc.com> C: Date: Tue, 15 Jan 2008 16:02:43 -0500 NICE TO MEET YOU C: . S: 250 Ok: queued as 12345 C: QUIT S: 221 Bye 这么简单的 ascii 文字交互,几乎就是邮件发送的全部细节。 SMTP 挑战和坑 既然邮件发送是这么简单,而且没有太多的硬性成本,所以垃圾邮件的泛滥在所难免。所以在多年后的今天,我们自己想搭建一个 smtp 服务发送一些类似于验证码的邮件,会显得这么困难。 下面我们提到一些坑 域名方面 很多 SMTP 发送邮件的坑,都发生在域名这里,所以对域名设置一定准确。 1 域名非主流 有的朋友使用 .cc .tk .ml 等域名来注册邮局发送邮件。虽然 RFC 协议并没有说不可以使用这些域名。但域名的歧视依然存在,特别是很多垃圾发送者使用免费的 TK ML 等国家域名来发送邮件的时候,你再使用这些免费域名,肯定遇到很多莫名其妙的拦截 2 没有做 PTR 解析 PTR ,也称为 rDNS ,例如 cloudflare.com 的域名 A 记录解释指向 1.1.1.1 ,如果 1.1.1.1 的域名的 rDNS 也可以指向 cloudflare.com ,那么我们说 1.1.1.1 PTR 的记录是 cloudflare.com 。 可以为 IP 加上 PTR 记录,这个就是向邮件服务提供商表明了这个 IP 是被你的域名所拥有的,这有利于提升 IP+域名的权重 查询 ptr 记录的方法: host -t PTR 1.1.1.1 ( linux ) 不知道什么原因,全文发 V2EX 会导致账号来临时封禁,应该没有什么敏感词。有兴趣的可以到这里看全文: https://zhuji188.com/%e8%87%aa%e5%bb%basmtp%e9%82%ae%e5%b1%80%e5%8f%91%e9%80%81%e9%82%ae%e4%bb%b6%e7%9a%84%e4%b8%80%e4%ba%9b%e5%9d%91/ |
Posted: 23 Jun 2022 09:06 PM PDT 在 go 节点一说到 orm 相关的,很多人都说 自己用 sqlx+sql builder 类似的库,或推荐类似库 但有个疑问就是 sqlx 这类的东西如何实现关联查询,比如一对一、一对多的模型关系,并且是易于使用的关联查询 然后就是项目复杂后,数据库的访问也变的复杂。这类简易库真的能在生产环境里高效开发吗,更容易开发吗?最终是不是还会自己整出个简易的 orm 库,那为何不一开始就用 orm 的库呢? |
You are subscribed to email updates from V2EX - 技术. To stop receiving these emails, you may unsubscribe now. | Email delivery powered by Google |
Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States |
No comments:
Post a Comment