请教一个 AI 生成 html 格式邮件问题

42 天前
 KINGWAY

看了这个帖子: https://v2ex.com/t/1063023 , 把里面所有的提到的工具基本都简单尝试了下发现还是不行, 所以特来详细请教。

需求: 定期性的发送 Html 格式邮件来给客户发送更新的产品和服务,比如 amotic.com 这个网站,想要做到首页直接 html 格式发给客户,尝试过右键源码保存( view-source:https://amotic.com/),然后通过邮件收到的话会丢失格式。

所以我的问题是请教各位如何通过 AI 工具做到上述要求?

1591 次点击
所在节点    程序员
32 条回复
KINGWAY
42 天前
我通过 claude 的 Convert HTML to Table Format , 给出了使用 Python 和 BeautifulSoup 库的示例代码, 但运行未成功,请教下有哪些问题需求解决?代码如下:

from bs4 import BeautifulSoup
import requests

# 假设我们可以访问网页
url = "http://www.amotic.com"
response = requests.get(url)
html_content = response.text

# 解析 HTML
soup = BeautifulSoup(html_content, 'html.parser')

# 创建一个新的 BeautifulSoup 对象来构建表格
table_soup = BeautifulSoup('<table border="1"></table>', 'html.parser')
table = table_soup.table

# 遍历原始 HTML 中的主要元素
for element in soup.body.find_all(['h1', 'h2', 'p', 'a']):
row = table_soup.new_tag('tr')

# 添加标签名称
tag_cell = table_soup.new_tag('td')
tag_cell.string = element.name
row.append(tag_cell)

# 添加内容
content_cell = table_soup.new_tag('td')
content_cell.string = element.text.strip()
row.append(content_cell)

table.append(row)

# 输出结果
print(table_soup.prettify())
DefoliationM
42 天前
这有必要用 ai 吗,自己转转不就行了,邮件的 html 不支持 JavaScript ,只能纯 html 。
KINGWAY
42 天前
@DefoliationM 请问如何实现现有的网站页面转换成纯 Html? 还请指点指点,无比感谢。
LuckyLauncher
42 天前
邮件的 HTML 不是完全符合 HTML 规范的,并且每个邮件客户端的 HTML 解析都不一样,总的来讲你需要去除所有 js 代码,去掉现代化的 css 属性,然后在根据你的邮件客户端去除部分标签
这样一来你还不如重新写一个布局代码
KINGWAY
42 天前
@LuckyLauncher 其实肯定不能保证兼容所有客户端,只要保证类似 outlook/thunerbird 之类的前几位邮件客户端就可以了。

自己重写布局肯定很烦,我看有很多 Python 之类的库或者脚本就可以做到 html 转换为 table 格式, 但是一直不能实现,这也是我发帖请教的原因。
yinmin
42 天前
页面是通过 css 渲染的,你的 python 程序只获取了 html 文件不可能转换成功的。
lDqe4OE6iOEUQNM7
42 天前
from bs4 import BeautifulSoup

# 示例 HTML 内容
html_content = """
<html>
<body>
<h1>Example Heading</h1>
<h2>Subheading</h2>
<p>This is a paragraph.</p>
<a href="http://example.com">This is a link</a>
</body>
</html>
"""

# 解析 HTML
soup = BeautifulSoup(html_content, 'html.parser')

# 创建一个新的 BeautifulSoup 对象来构建表格
table_soup = BeautifulSoup('<table border="1"></table>', 'html.parser')
table = table_soup.table

# 遍历原始 HTML 中的主要元素
for element in soup.body.find_all(['h1', 'h2', 'p', 'a']):
row = table_soup.new_tag('tr')

# 添加标签名称
tag_cell = table_soup.new_tag('td')
tag_cell.string = element.name
row.append(tag_cell)

# 添加内容
content_cell = table_soup.new_tag('td')
content_cell.string = element.get_text(strip=True)
row.append(content_cell)

table.append(row)

# 输出结果
print(table_soup.prettify())
marcogray
42 天前
提供一种解决的思路:
1. 网站内容提取,建议你使用这个 jina.ai 这个工具,它可以把网站内容转成 Markdown 格式。
2. 把提取出来的页面 markdown 内容给 Claude ,写一段类似的 prompt: 帮我把下面的内容转换成 HTML ,并且使用 tailwindCSS 样式来美化页面,所有用到的 class 用<style></style>内联 CSS 写在 HTML 中。以下是 Markdown 内容。。。。
falcon05
42 天前
换个思路,用无头浏览器抓取或者自己对网站截图,把图片发给 ai ,写个 prompt 让 ai 根据图片生成可以在邮件正常显示的 html 代码
LuckyLauncher
42 天前
@KINGWAY #5 前几位邮件客户端的渲染也不一样啊,你还是要看每个客户端的渲染
“我看有很多 Python 之类的库或者脚本就可以做到 html 转换为 table 格式”
这也看布局格式的好吧,你要对你的网站进行深度定制才可以(正常的信息流有普通的文档流布局,float 布局,弹性盒子布局,网格布局,你的网站是哪种布局),那也就变成了我说的重新写
zsh2517
42 天前
『定期性的发送 Html 格式邮件来给客户发送更新的产品和服务』,也就是说,邮件内容是比较模板化的?

感觉可以找个组里的前端,请吃个饭或者奶茶(几十块钱应该差不多了),让他帮你还可以写个模板。(要求能看但是不要求好看的话,十几分钟几十分钟就行)

然后还可以让他帮你做一下内容生成之类的,输入列表输出排版布局
zhuangzhuang1988
42 天前
邮件要用特殊的工具的
比如 https://mjml.io/
meeop
42 天前
你的需求不明确:
1 目的是什么,展示网站首页样式还是展示最新产品
2 网站是你的吗,还是爬别人的
3 为什么不能直接发昂页链接
4 为什么一定要 html,截图,pdf 附件不行吗
5 一次性任务还是定时任务,人工发可以吗


看你的描述,最简单的就是发个截图或者网站链接
其次是使用富文本工具人工编辑个 html 表格

如果是你自己的网站且有研发,直接用网站后台数据构建页面发送
kokerkov
42 天前
Odoo 有类似功能。如果你只需要这一个功能,可以在自己电脑上装一个 windows 版。
136178128
42 天前
可以去搜搜 react html ,我是用下来就和正常写布局差不多了。
看了下你给的网站首页,可以叫 ai 这样写,这种列表页面应该是很简单的。
ps:那些动画就别想了。
希望能帮到你
knva
42 天前
截图最简单了。
busier
42 天前
给网站内容做个 rss 订阅
用 rss 订阅构建 html 发送
EchoYZD
42 天前
我有解决方案
GPT6
42 天前
自己抓下来图片等其他关键信息,通过服务器生成邮件专用的 html 格式再发送就行了 https://emailframe.work/
KINGWAY
42 天前
@falcon05 你说的这个是类似 screenshot to code 吗? 我测试过好像不行, 或者我姿势不对?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1063457

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX