V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
KINGWAY
V2EX  ›  程序员

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

  •  
  •   KINGWAY · 105 天前 · 1716 次点击
    这是一个创建于 105 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    第 1 条附言  ·  105 天前
    先感谢各位的指导, 我一会慢慢爬楼看看。
    32 条回复    2024-08-13 16:37:35 +08:00
    KINGWAY
        1
    KINGWAY  
    OP
       105 天前
    我通过 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
        2
    DefoliationM  
       105 天前 via Android
    这有必要用 ai 吗,自己转转不就行了,邮件的 html 不支持 JavaScript ,只能纯 html 。
    KINGWAY
        3
    KINGWAY  
    OP
       105 天前
    @DefoliationM 请问如何实现现有的网站页面转换成纯 Html? 还请指点指点,无比感谢。
    LuckyLauncher
        4
    LuckyLauncher  
       105 天前
    邮件的 HTML 不是完全符合 HTML 规范的,并且每个邮件客户端的 HTML 解析都不一样,总的来讲你需要去除所有 js 代码,去掉现代化的 css 属性,然后在根据你的邮件客户端去除部分标签
    这样一来你还不如重新写一个布局代码
    KINGWAY
        5
    KINGWAY  
    OP
       105 天前
    @LuckyLauncher 其实肯定不能保证兼容所有客户端,只要保证类似 outlook/thunerbird 之类的前几位邮件客户端就可以了。

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

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

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


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

    如果是你自己的网站且有研发,直接用网站后台数据构建页面发送
    kokerkov
        14
    kokerkov  
       105 天前
    Odoo 有类似功能。如果你只需要这一个功能,可以在自己电脑上装一个 windows 版。
    136178128
        15
    136178128  
       105 天前
    可以去搜搜 react html ,我是用下来就和正常写布局差不多了。
    看了下你给的网站首页,可以叫 ai 这样写,这种列表页面应该是很简单的。
    ps:那些动画就别想了。
    希望能帮到你
    knva
        16
    knva  
       105 天前   ❤️ 1
    截图最简单了。
    busier
        17
    busier  
       105 天前 via iPhone   ❤️ 1
    给网站内容做个 rss 订阅
    用 rss 订阅构建 html 发送
    EchoYZD
        18
    EchoYZD  
       105 天前
    我有解决方案
    GPT6
        19
    GPT6  
       105 天前   ❤️ 1
    自己抓下来图片等其他关键信息,通过服务器生成邮件专用的 html 格式再发送就行了 https://emailframe.work/
    KINGWAY
        20
    KINGWAY  
    OP
       105 天前
    @falcon05 你说的这个是类似 screenshot to code 吗? 我测试过好像不行, 或者我姿势不对?
    KINGWAY
        21
    KINGWAY  
    OP
       105 天前
    @zsh2517 是可以找人,但不能总麻烦别人。
    KINGWAY
        22
    KINGWAY  
    OP
       105 天前
    @kokerkov odoo 我倒是装了个, 目前我研究了 erpnext/odoo/mautic, 但都需要解决根本性问题,还是得知道如何撰写 html 格式邮件。
    KINGWAY
        23
    KINGWAY  
    OP
       105 天前
    @136178128 邮件的 html 都是用 table 写的,单纯的 html 很容易。不过也许我理解错误,可能你说的就是 Html 格式邮件?
    KINGWAY
        24
    KINGWAY  
    OP
       105 天前
    @busier 这个就太麻烦了。
    KINGWAY
        25
    KINGWAY  
    OP
       105 天前
    @EchoYZD 请留联系方式沟通下?
    KINGWAY
        26
    KINGWAY  
    OP
       105 天前
    @GPT6 https://emailframe.work 这个看起来是个不错的网站,不过还是太复杂了,因为没有多余的人力,所以只能用 AI 或者现成的工具快速解决问题,
    izjing666
        27
    izjing666  
       105 天前
    邮件模板自己写都会存在很多兼容性问题更别提自动生成了,建议生成图片发给用户
    falcon05
        28
    falcon05  
       105 天前 via iPhone
    @KINGWAY 那个不行吧,邮件用的 html 有特殊要求,screen to code 主要是生成面向浏览器的 html ,估计不会兼容邮件,有时间我试一下。
    konakona
        29
    konakona  
       105 天前
    邮箱支持的 html 元素有限,一般用 table 做列表呈现数据。

    为了视觉效果,推荐图片加 imagrmap 锚点点击跳转。
    gaobh
        30
    gaobh  
       104 天前 via iPhone
    只推荐用第三方邮件模版制作服务,自己做兼容性很难搞
    KINGWAY
        31
    KINGWAY  
    OP
       103 天前
    @falcon05 期待你的更新。
    achuanweb
        32
    achuanweb  
       100 天前
    用专业的生成邮件的富文本编辑器/ 或者 py 库,如果会 nodejs 那就很简单
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2819 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 14:59 · PVG 22:59 · LAX 06:59 · JFK 09:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.