Unix sendmail - html 嵌入图像不起作用

2024-01-06

在 SO.com 之前的帖子中,我尝试构建脚本来将电子邮件发送到我的 Outlook 帐户,并将图像内嵌在电子邮件正文中。但 html 内容显示在 html 中,而不是显示图像。请帮忙。

这是我的片段

{
echo "TO: [email protected] /cdn-cgi/l/email-protection"
echo "FROM: [email protected] /cdn-cgi/l/email-protection>"
echo "SUBJECT: Embed image test"
echo "MIME-Version: 1.0"
echo "Content-Type: multipart/related;boundary="--XYZ""

echo "--XYZ"
echo "Content-Type: text/html; charset=ISO-8859-15"
echo "Content-Transfer-Encoding: 7bit"
echo "<html>"
echo "<head>"
echo "<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">"
echo "</head>"
echo "<body bgcolor="#ffffff" text="#000000">"
echo "<img src="cid:part1.06090408.01060107" alt="">"
echo "</body>"
echo "</html>"


echo "--XYZ"
echo "Content-Type: image/jpeg;name="sathy.jpg""
echo "Content-Transfer-Encoding: base64"
echo "Content-ID: <part1.06090408.01060107>"
echo "Content-Disposition: inline; filename="sathy.jpg""
echo $(base64 sathy.jpg)
echo "' />"
echo "--XYZ--"
}| /usr/lib/sendmail -t

我收到的电子邮件包含以下内容而不是显示图像,

--XYZ
Content-Type: text/html; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit
<html>
<head>
<meta http-equiv=content-type content=text/html
</head>
<body bgcolor=#ffffff text=#000000>
<img src=cid:part1.06090408.01060107 alt=>
</body>
</html>
--XYZ
Content-Type: image/jpeg;name=sathy.jpg
Content-Transfer-Encoding: base64
Content-ID: <part1.06090408.01060107>
Content-Disposition: inline; filename=sathy.jpg
/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAoAAD/4QNxaHR0cDov
....base64 values.....
/>
--XYZ--
----XYZ--

你能帮我解决我缺少的东西吗


你使用的方式echo要打印消息标题,它会吃掉所有双引号 - 您需要用反斜杠转义它们(\")使其发挥作用。

另外,你的边界是错误的。如果你定义boundary=--XYZ,那么每个消息部分需要以----XYZ(你需要add两个破折号),否则你的边界应该只是XYZ。哑剧部分的标题必须与正文之间用空行分隔。

如果您确实需要从 shell 脚本生成邮件,那么我的建议是摆脱所有 echo 并使用 Heredoc 代替:

sendmail -t <<EOT
TO: [email protected] /cdn-cgi/l/email-protection
FROM: <[email protected] /cdn-cgi/l/email-protection>
SUBJECT: Embed image test
MIME-Version: 1.0
Content-Type: multipart/related;boundary="XYZ"

--XYZ
Content-Type: text/html; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
</head>
<body bgcolor="#ffffff" text="#000000">
<img src="cid:part1.06090408.01060107" alt="">
</body>
</html>

--XYZ
Content-Type: image/jpeg;name="sathy.jpg"
Content-Transfer-Encoding: base64
Content-ID: <part1.06090408.01060107>
Content-Disposition: inline; filename="sathy.jpg"

$(base64 sathy.jpg)
--XYZ--
EOT
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unix sendmail - html 嵌入图像不起作用 的相关文章

  • 有没有办法在 html 图像标签中显示位图数据? [复制]

    这个问题在这里已经有答案了 有没有办法在 HTML 元素中显示位图图像数据 例如 您有一个指向源文件的常规图像 如下所示 img src myImage png width 100 height 100 有没有这样的事情 img width
  • 如何将当前元素传递给 Knockout.js 绑定中的 Javascript 函数?

    因此 我尝试根据是否选中子复选框 使用 Knockout js 将类添加到元素 为此 我试图通过this作为我的函数的参数 目前 我的精简 DOM 结构如下 tr td td tr
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它
  • 跨浏览器:禁用输入字段的不同行为(文本可以/不能复制)

    我有一个被禁用的输入 html 字段 在某些浏览器 Chrome Edge Internet Explorer 和 Opera 中可以选择并复制文本 但至少在 Firefox 中这是不可能的 您可以通过在不同浏览器中执行以下代码来测试
  • 使用 JavaScript onclick 添加表格行

    我正在尝试使用 javascript 添加下面找到的完全相同的元素 我已经尝试了这里找到的所有解决方案 我什至尝试用php echo但没有运气 无需更改任何输入名称或类似内容 只需单击该按钮即可向表中添加另一行 仅此而已 这是该元素 tr
  • CSS:缩放字体大小以适应父块元素的高度

    我发现的几乎每个问题和答案都谈到了视口大小 这确实不是我的问题 拿着这支笔 https codepen io njt1982 pen pZjZNM https codepen io njt1982 pen pZjZNM 我有一个非常基本的
  • 为什么 `input type="date"` 的行为发生了变化?

    日期输入 例如
  • 使用滤镜将css3灰色图像转为蓝色?

    我正在尝试将灰色图像变为更蓝色的色调 真的不知道如何为此设置滤镜或是否可能 该图像只有一种颜色 cacaca 其余部分透明 我正在尝试使用相同的图像进行一些叠加 以便它仅突出显示那些彩色部分而不是透明区域 一直在尝试其中的一些 但没有取得多
  • 两个 Div 之间的固定宽度间隙

    有谁知道如何修复两个 div 之间的间隙 我有一个主要内容 Div 里面有两个带有图片的 Div 视图的宽度为 768 像素 当我开始拉伸视图时 两张图片开始相互远离 但理想情况下 主要内容 Div 应该在周围有空白的情况下拉伸 并且图片之
  • 如何使用带有 python 的报告实验室将 html 文档转换为 pdf

    我正在尝试使用报告实验室将我创建的 html 文档转换为 pdf html 文档如下 我不确定如何做到这一点 我在网上查看过 似乎找不到解决方案 html文档 h2 Convert to pdf h2 p Lorem ipsum dolor
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • 将样式添加到 mat-autocomplete 的 mat-option

    我有这个 HTML代码在这里 https stackblitz com edit angular mat autocomplete with selected value vx1uqg file src 2Fapp 2Fautocomple
  • Google Maps API 下拉列表,缩放至标记

    我正在使用 Google Maps API v3 我有一个带有一些标记的简单地图 我还有一个下拉列表 我需要最少的代码来完成这项工作 我想在下拉列表中选择一个标记 并将选定的标记平移到它 我已经尝试了一切并在网上查看 我发现事情很接近 但到
  • Flexbox 不适用于 iPad 和 Safari [重复]

    这个问题在这里已经有答案了 我在网站上使用 Flexbox 但它在 iPad Air iPad 3 和 Safari PC 上崩溃 设计和代码与此 codepen 类似 http codepen io anon pen xwJzEg htt
  • 为什么自关闭 iframe 标签会阻止显示更多 DOM 元素?

    在 Firefox 和 Safari 上 以下代码仅显示第一个 iframe 而添加结束标签可以解决问题 我不明白为什么它不起作用 当使用 DOMParser 解析第二个示例时 它无论如何都会转换为自关闭 iframe 在这里小提琴 htt
  • CSS 中的像素与像素密度

    我对 HTML 和 CSS 非常陌生 我突然想到 当决定某个东西是 5px 时 比如说 由于像素的物理尺寸取决于密度 所以 5px 在 100 ppi 的屏幕上看起来肯定比在 300 ppi 的屏幕上看起来更大ppi 这是正确的吗 如果是
  • 物化模式覆盖整个页面(模式弹出窗口未带到前台)

    由于保密原因 我无法上传 Web UI 的屏幕截图 物化模态应该表现得像here http materializecss com modals html 但不幸的是 我的网站发生的情况是 包括模式在内的整个页面都是 深色背景 的一部分 模式
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • 避免响应式页面的重复内容

    我目前正在做一个涉及响应式设计的项目 整个布局应该使用HTML和CSS来实现 我知道可以使用 java 脚本将内容从一个列布局移动到另一列布局 而无需复制内容 但是使用 HTML 和 CSS 是否可以实现相同的效果 以下面的例子为例 它会在
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比

随机推荐

  • 类型错误:无法连接“str”和“type”对象

    在解决我的问题之前 我已经四处寻找答案 但似乎找不到任何针对我的情况的信息 好的 基本上我通过 cmd 调用我的脚本并传入 16 个参数并使用它们来设置我拥有的一些变量 我正在创建一个自定义 html 报告供我们公司使用 我只是用这些变量来
  • pandas.read_excel() 输出“OverflowError:日期值超出范围”,而不存在日期列

    我正在尝试将一个大的 Excel 文件 400k x 40 导入到 Pandas DataFrame 中 虽然它在我的本地计算机上运行良好 但在移植到 Python 3 7 Pandas 1 2 4 和 Openpyxl 3 0 7 的 L
  • 如何在配置文件中隐藏数据库密码

    我正在开发一个 C 项目 该项目需要访问数据库以读取其输入 到目前为止 我们使用了默认用户名 postgres 和存储在基于 xml 的配置文件中的 固定明文 密码以及许多其他设置 现在我需要的是在提供配置文件时向用户隐藏密码 FYI 开发
  • gulp 构建语义用户界面非常慢

    我已经为此搜索了好几天 但运气不佳 我通过 NPM 通过 Laravel 安装安装了 Semantic UI 我修改了项目根目录中的 gulpfile js 以导入语义 UI 的构建和监视任务 var elixir require lara
  • 媒体会话兼容未在 Pre-Lollipop 上显示锁屏控件

    我在用着MediaSessionCompat来自 AppCompat 支持库修订版 22 在 Lollipop 上 我收到通知 而且锁屏的背景是专辑封面 一切都很顺利 在棒棒糖之前的设备上 锁屏上的音乐控件根本不显示 这很奇怪 我尝试了一切
  • AngularJS:使用多行写入和读取文本区域

    我不敢相信为什么我找不到这个主题的任何内容 我得到了一个表格 其中包含姓氏 输入 名字 输入 描述 文本区域 因为我想提供几行 让我们从创建一个新对象开始 好的 你输入类似的内容 姓 fox 名 peter 描述 what can I sa
  • fread():从文件读取(不对齐)会导致跳过字节

    我有一个文件 使用 C 我想使用 fread 来自 stdio h 读取它的内容并将其写入结构的成员中 在我的例子中 开头有一个 2 字节 int 后面跟着一个 4 字节 int 但是 在将文件内容正确写入结构的前两个字节变量后 它会跳过两
  • 是否可以将 Asterisk 作为支持 WebRTC 的移动应用程序的信令服务器

    是否可以将 Asterisk 作为支持 WebRTC 的移动应用程序的信令服务器 我发现我需要在node js 中创建信令服务器 我想知道 Asterisk 是否可以为我完成这项工作 此外 WebRTC 媒体是否通过信令服务器传递 或者 是
  • 在 GitLab CI 管道中使用 docker-compose

    我正在尝试使用以下内容实现 GitLab 持续集成 CI 管道 gitlab ci yml file image docker latest When using dind it s wise to use the overlayfs dr
  • Matlab 相当于 Python 的“None”

    Matlab中是否有一个关键字大致相当于None在Python中 我试图用它来标记函数的可选参数 我正在翻译以下Python代码 def f x y None if y None return g x else return h x y 进
  • Winrt StreamWriter 和 StorageFile 未完全覆盖文件

    在这里快速搜索一无所获 因此 我开始使用一些相当迂回的方法在我的 WinRT 应用程序中使用 StreamWriter 阅读效果很好 写作则不同 我看到的是 当我选择要写入的文件时 如果我选择一个新文件 那么就没有问题 该文件已按我的预期创
  • 如何在Android上创建简单的日历[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何通过 Typescript 使用全局 Node 包

    可以通过安装全局包来使用它们npm install g 如果以这种方式安装 Typescript 类型 它们也可以在全局文件夹中使用 例如 usr lib node modules在Linux系统上 当使用以下命令转译打字稿源文件时tsc
  • Spring Data JPA底层机制无实现

    我开始阅读本教程 春季启动教程 https spring io guides tutorials bookmarks 在此我读到 在模型模块下 他们实现了 POJO 和存储库接口 gt github上的教程 https github com
  • 如何使用JNI代码正确导入Android库?

    背景 我制作了一个使用 JNI 进行位图处理的小型 SDK 链接here https github com AndroidDeveloperLB AndroidJniBitmapOperations 它只有 2 个项目 一个示例项目 演示
  • 如何在 Android 中连接到加密算法未知的 WiFi 网络?

    我研究过这个问题堆栈溢出 但所有答案都指定了如何使用已知加密算法 主要是 WEP 连接到网络 在我的应用程序中 我检索可用 wifi 网络的列表 并将它们显示在ListView using WifiManager 当用户单击列表中的一项时
  • 检索项目的父级时出错:找不到与给定名称“@android:style/TextAppearance.Holo.Widget.ActionBar.Title”匹配的资源

    我正在实现 ActionBar 以使用 xml 中的样式脚本设置文本的颜色 但是当我运行应用程序时出现错误 有人知道我缺少什么吗 这是我的 style xml 文件
  • 有没有办法确保 MSI 安装程序每次都更新 .exe 文件?

    是否有一些简单 无麻烦的方法可以让 MSI 安装在 exe 文件更新时始终替换 exe 文件 即主输出 这只是基本常识 无论我在哪里搜索 总是有关于主要版本和次要版本以及补丁的复杂讨论 必须有一些简单的方法来确保文件在安装过程中被替换 否则
  • 是否可以使用 POST 从 URL 直接上传到 S3?

    我知道有一种方法可以使用 POST 直接从 Web 浏览器上传到 S3 而无需将文件发送到后端服务器 但是有没有办法通过 URL 而不是 Web 浏览器来完成此操作 例如 上传位于以下位置的文件http example com dude j
  • Unix sendmail - html 嵌入图像不起作用

    在 SO com 之前的帖子中 我尝试构建脚本来将电子邮件发送到我的 Outlook 帐户 并将图像内嵌在电子邮件正文中 但 html 内容显示在 html 中 而不是显示图像 请帮忙 这是我的片段 echo TO email protec