Perl 中的电子邮件主题 MIME 编码。

2023-12-02

我正在尝试在 Perl 5.8.5 下发送主题行中包含非 ASCII 字符的电子邮件。我的简单示例使用单词“änderungen”(德语元音变音),但主题行始终会显示为“änderungen”,而不是正确转换“ä”。

#!/usr/bin/env perl

use warnings;
use strict;
use Encode qw(decode encode);

my $subject = "Änderungen";
my $subject_encoded = encode("MIME-Q", $subject);

[...]

open(MAIL, "| /usr/sbin/sendmail -n -t $recipient") || return "ERROR";
print MAIL 'Content-Type: text/plain; charset="utf-8"\n';
print MAIL "To: $recipient\n";
print MAIL "From: $from\n";
print MAIL "Reply-To: $from\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$body\n\n";
print MAIL ".\n";
close(MAIL);

$subject_encoded 的内容打印为=?UTF-8?Q?=C3=83=C2=84nderungen?=当一个在线的编码器工具表明它实际上应该是=?UTF-8?Q?=C3=84nderungen?=.

当使用后者编码手动构建主题字符串时,邮件主题将在我的电子邮件软件中正确显示“änderungen”,因此问题似乎出在实际的 Perl 编码命令上。我正在尝试使用引用的可打印编码,但是通过 MIME-B 和 MIME-Header 进行编码也会导致“änderungen”的错误表示。

我确实检查了代码文件的文件格式,并且字符集也返回为 utf-8。因此我不知道为什么 Perl 显然以错误的方式编码它。有什么想法或我可能忽略的事情吗?


您的编辑器将该文件视为 UTF-8,因此它显示

my $subject = "Änderungen";

Perl 有效地将文件视为 iso-8859-1,因此它看到

my $subject = "Ã?nderungen";

通过添加告诉 Perl 您使用 UTF-8 对脚本进行编码

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

Perl 中的电子邮件主题 MIME 编码。 的相关文章

  • NSXMLParser 解析使用 Windows-1256 编码的 xml 文件

    我想解析 Windows 1256 编码的 rss 文件 但解析器没有读取它 我用 UTF8 编码做了很多解析 但只有这个不起作用 为什么 带有 Windows 1256 的 rss 文件 http youm7 com Rss asp 解决
  • 带有取消订阅链接的 Rails 电子邮件

    我正在开发一个 Rails 4 2 应用程序 该应用程序每周都会有人们注册的活动 他们会在每次活动之前 每周 收到一封提醒电子邮件 我想要电子邮件中的一键取消订阅链接 这似乎是一个常见的任务 但我还没有找到一个好的当前解决方案 我看到的一些
  • 使用SimpleMailMessage类发送邮件时如何使java字符串着色

    我正在使用 java 中的 SimpleMailMessage 类发送邮件 我将 spring 与 hibernate 结合使用 我想在发送邮件时将特定字符串设置为彩色 Code String emailBody Dear username
  • Perl:Chomping字符串后,它不打印字符串的值

    所以我目前正在尝试编写一个 perl 脚本来读取一个文件并写入另一个文件 目前 我遇到的问题是从解析的行中删除换行符 我输入这样的文件 BetteDavisFilms txt 1 Wicked Stepmother 1989 as Mira
  • 字符编码失败,为什么\xBD在PHP + HTML中显示不正确

    我只是想更好地理解字符编码 所以我做了一些测试 我有一个保存为 UTF 8 的 PHP 文件 如下所示 页面本身
  • 将以utf-8字符串为内容的unicode转换为str

    我正在使用 pyquery 来解析页面 dom PyQuery http zh wikipedia org w index php title CSS printable yes variant zh cn content dom mw c
  • C++ 字符串:UTF-8 还是 16 位编码?

    我仍在尝试决定我的 家庭 项目是否应该使用UTF 8 http en wikipedia org wiki UTF 8字符串 根据 std string 实现 必要时带有附加的 UTF 8 特定函数 或一些 16 位字符串 作为 std w
  • 在 Perl 中优雅地确定系统架构

    我正在寻找一种简单的方法来确定 Perl 5 中的系统是 32 位还是 64 位 我已阅读perlvar来回翻阅手册页 并没有发现包含系统 CPU 架构的变量 编译 Perl 的 CPU 架构将足够接近 这是我最接近的 chomp my a
  • wp_mail(Wordpress 邮件功能)未发送到 gmail 或 live.co.uk 帐户

    我有一个网站 允许访问者通过两种方式联系我 通过其自己页面上的联系表单和侧边栏中的 ajax 小型联系表单 两种联系方式都会向我的 Gmail 帐户发送电子邮件 它自己页面上的联系表单工作正常 但ajax表单不会发送到gmail 也不会发送
  • 如何更改 TextWriter 对象中的编码?

    我有 xml 是通过 API 在另一个 resurse 中发送的 我通过 XDocument 创建它 XDocument xDoc new XDocument new XDeclaration 1 0 utf 8 yes new XElem
  • 我无法使用 Codeigniter 发送任何电子邮件

    我创建了一个控制器 并在控制器中做了一个测试函数来测试电子邮件是否发送 我检查了不同的电子邮件地址 但没有成功 这是我的代码示例 public function sendmail config protocol sendmail confi
  • 真实设备中的 Android strace

    我有以下情况 我想监控Android手机上的系统调用 所以 我编写了一个脚本来做到这一点 使用 Android 模拟器可以完美地工作 将应用程序的痕迹写入我的 Ubuntu 上的特定文件中 问题是当我连接一个真实的手机来分析它时 它在结果文
  • Perl Moose TypeDecorator 错误。我该如何调试?

    我最近遇到了一个问题 非常感谢您的见解 我在圣诞节前在 PerlMonks 上发布了类似的问题 并提供了一些从 MooseX Declare 切换的反馈 http www perlmonks org node id 877703 1 我现在
  • Perl - 以相反的顺序逐行读取文件[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Perl 中从文件末尾读取行 https stackoverflow com questions 303053 how can i read lines from the end of fil
  • 类型错误:在自定义 python 函数中找到预期字节、str

    我正在使用一种名为 Giggle 的新生物信息学工具 并且我已经在我的系统上安装了 python 包装器 尽管场景非常具体 但我认为问题非常普遍 这个功能 index Giggle create index HMEC hg19 BroadH
  • 如何检测已更改的网页?

    在我的应用程序中 我使用 LWP 定期获取网页 无论如何 是否要检查两次连续提取之间网页是否在某些方面发生了变化 除了明确进行比较之外 是否有在较低协议层生成的任何签名 例如 CRC 可以提取并与旧签名进行比较以查看可能的更改 有两种可能的
  • 检查 Python 中的有效 utf8 字符串

    我正在从文件系统读取文件名 并且想将它们作为 JSON 编码数组发送 问题是文件系统上的文件可以以无效的编码存储 我需要处理这种情况以在将其传递给之前省略无效的文件名json dump 否则会失败 有没有办法检查我的字符串 文件名 是否包含
  • Perl 中如何释放内存?

    我的代码如下所示 my var my var new while 1 while my k v each var a sub v var A map var var new keys var new var new B sub a sub
  • 如何转换 UTF-8 <-> UTF16 可移植

    有没有一种简单 可移植的方法 至少是 win32 linux 将 UTF 16 转换为 UTF 8 并返回 最好使用升压 谢谢你的帮助 托比亚斯 Both libiconv http www gnu org software libicon
  • 编辑表单以清理/验证电话号码

    我对 PHP 的经验非常有限 我真的希望有人可以帮助我 我想要做的是清理 验证输入的电话号码 以便只允许使用数字 我想我需要使用FILTER SANITIZE NUMBER INT但我不确定在哪里或如何使用它 这是我的代码

随机推荐

  • 如何在 Woocommerce 中按商品设置运费

    在 Woocommerce 中 当我在购物车中添加多个产品时 运费仅适用于 1 个产品 我应该如何更改它以将成本应用于每个项目 如下图所示 适用打印机的运费 但不适用液晶显示器的运费 如何在 Woocommerce 中按商品设置运费 在 W
  • 具有奇数宽度的 16 位纹理是透明的

    我使用以下 OpenGL 命令上传 35 x 100 16bpp 纹理 glTexImage2D GL TEXTURE 2D 0 GL RG8 35 100 0 GL RG GL UNSIGNED BYTE pixelData 但随着 y
  • 如何更改wpf中的图标扩展器

    有没有办法可以将扩展器的图标更改为 并以白色作为前景色 我一直在到处寻找但找不到简单的解决方案 或者更好的是 如何将扩展器图标的颜色更改为白色 我的背景是深色的 所以这就是我问的原因 您将需要创建自定义控件模板 请参阅此 CodeProje
  • 如何修复:无法推断自动强制的适当生命周期

    我再次遇到了一个我似乎无法独自解决的终生问题 编译器告诉我无法推断自动强制的适当生命周期 我尝试遵循编译器的建议并在handle request method fn handle request lt a gt self req Reque
  • 如何正确获取 WinForms Button 控件来绘制自定义文本

    我正在尝试创建一个自定义 winforms 按钮控件 该控件将允许通过旋转属性旋转按钮文本 我基本上已经让它工作了 但是它非常笨拙 我想知道执行此操作的正确方法 特别是现在文本重绘的行为很奇怪 如果控件移出屏幕 然后缓慢移回到文本上 要么变
  • 使用偏移量和 jQuery 滑块

    我正在使用 offset 和 jquery slider 我非常接近实现我的目标 但它有点偏离 我使用 animate 将其动画化到顶部 CSS 坐标 但是如果您查看 http www ryancoughlin com demos inte
  • 互斥锁的发生顺序是否与请求的顺序相同? [复制]

    这个问题在这里已经有答案了 我目前正在尝试使用创建一个非常简单的线程池std thread 为了在完成给定任务后保持线程 活动 我关联了一个std mutex与他们每一个人 原理有点像这样 Thread loop while 1 m oMu
  • 如何在Python中传递给类类型的类方法参数?

    我有一个类 想要定义一个接受相同类类型的参数的方法 如下所示 class MyClass def my method self param MyClass pass 但我有一个错误Unresolved reference MyClass 如
  • virtual关键字在函数声明中的位置

    我是否放置有什么区别virtual函数声明中的关键字位于返回值类型之前还是之后 virtual void DoSomething 0 void virtual DoSomething 0 找到了void virtual语法 同时重构一些遗留
  • 基本类型在 C++ 和 CLI 之间传递模板参数

    我有一个 C 模板类 template
  • 时区与日历混淆结果

    我最近一直在处理时区转换 对得到的结果感到非常惊讶 基本上 我想将日期从一个时区转换为另一个时区 下面是代码 转换工作正常 但我在调试时观察到的是 除非我调用 否则日期不会转换Calendar get Calendar FIELD priv
  • Python:传递变量名作为参数

    我有一个函数f x 其中创建了许多局部变量 x是与这些局部变量之一同名的字符串 我想通过更改来更改此局部变量x 执行此操作的干净方法是什么 目前我正在使用很多if elif声明 一些虚拟代码来代表我的问题 def f x a 1 2 3 b
  • 单色灰度图像,获取像素强度

    我试图导出单色 灰度 图像中特定像素的强度值 我有一些伪代码 但到目前为止我还无法实现真正 有效的东西 Retrieve the intensity value at location row column of the image img
  • mysql 配置停止于“启动服务器”

    我正在我的 Windows 8 机器上安装 MySQL 安装程序 在服务器配置过程中 它卡在 启动服务器 处并且不再移动 相同的日志是 Beginning configuration step Stopping Server if nece
  • 在 JavaScript 中使 forEach 异步

    我试图了解异步编程 Node js 但在这段代码上停滞不前 此函数在其回调中返回目录中的文件数组 function openDir path callback path dirname path fs exists path functio
  • 从方法中获取恒定的错误值

    我有 3 个问题 private static int NUMBER OF QUESTIONS 3 static boolean answer new boolean NUMBER OF QUESTIONS static boolean c
  • 使用 Google Apps 脚本将 Google 表单问题添加到表单的特定部分

    如果之前已经回答过这个问题 我深表歉意 但我已经进行了广泛的研究并且发现不足 我正在尝试向已存在的 Google 表单的各个部分添加一些问题 我知道如何添加新问题 form addTextItem 但这会将其附加到表单的末尾 我还知道如何获
  • 如何在 Perl 中替换日期?

    perl pi back e s 2013 07 31 05 54 14 2014 07 31 00 00 00 g tmp ranjan replace SEL 我正在使用上面的衬里来替换日期2013 07 31 05 54 14 to
  • 在设计时显示 MultilineStringEditor 来编辑编辑控件的行?

    我正在跟进这篇 C 文章了解如何创建 ActionList 和操作项 但是本文仅关注 类型的操作项DesignerActionPropertyItem 我想创建一个类型的项目DesignerActionMethodItem调用必须打开一个方
  • Perl 中的电子邮件主题 MIME 编码。

    我正在尝试在 Perl 5 8 5 下发送主题行中包含非 ASCII 字符的电子邮件 我的简单示例使用单词 nderungen 德语元音变音 但主题行始终会显示为 nderungen 而不是正确转换 usr bin env perl use