- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 ahk 脚本发送正常的电子邮件(将在问题结束时发布整个脚本)。我现在正在设置一个脚本来发送 HTML 格式的电子邮件。发送 HTML 格式的电子邮件所需的唯一更改是更改:
pmsg.TextBody
到:
pmsg.HtmlBody
我在 .html 文件名和主题中有一个表情符号:
MailSubject = ✌️ Welcome to Vinewood Studios!
FileRead, MailBody, J:\ONLINE_STORAGE\GOOGLE_DRIVE\Gmail Templates\VSA\VSA-PRE-ORDER\✌️ Welcome to Vinewood Studios!.html
该脚本可以很好地读取 html 文件并发送电子邮件。问题在于,只要有表情符号或特殊字符,例如 ™ 或 •,就会产生问号或符号。在此处查看主题行和页脚:
MailSubject = {U+1F601} "Welcome to Vinewood Studios!"
但它根本没有阅读它(电子邮件主题说“没有主题”):
MailSubject := {U+1F601} "Welcome to Vinewood Studios!"
MailSubject := {U+1F601} . "Welcome to Vinewood Studios!"
emoji := {U+1F601}️
MailSubject := emoji . "Welcome to Vinewood Studios!"
使用时:=
MailSubject := ✌️ Welcome to Vinewood Studios!
电子邮件主题只是读取数字“1”。
MailSubject := ✌️ Welcome to Vinewood Studios!
FileRead, MailBody, J:\ONLINE_STORAGE\GOOGLE_DRIVE\Gmail Templates\VSA\VSA-PRE-ORDER\✌️ Welcome to Vinewood Studios!.html
SendEmail(MailBody, MailSubject)
SendEmail(MailBody, MailSubject, SendTo:="ztwersky@gmail.com")
{
pmsg := ComObjCreate("CDO.Message")
pmsg.From := """VSA Management"" <support@vinewoodstudios.com>"
pmsg.To := SendTo
pmsg.BCC := "" ; Blind Carbon Copy, Invisable for all, same syntax as CC
pmsg.CC := ""
pmsg.Subject := MailSubject
pmsg.HtmlBody := MailBody
pmsg.BodyPart.Charset := "utf-8" ;Displays emoji correctly in subject only
;sAttach := ; "Path_Of_Attachment" ; can add multiple attachments
; the delimiter is |
fields := Object()
fields.smtpserver := "smtp.gmail.com" ; specify your SMTP server
fields.smtpserverport := 465 ; 25
fields.smtpusessl := True ; False
fields.sendusing := 2 ; cdoSendUsingPort
fields.smtpauthenticate := 1 ; cdoBasic
fields.sendusername := "ztwersky@gmail.com"
fields.sendpassword := "PASSWORD"
fields.smtpconnectiontimeout := 60
schema := "http://schemas.microsoft.com/cdo/configuration/"
pfld := pmsg.Configuration.Fields
For field,value in fields
pfld.Item(schema . field) := value
pfld.Update()
Loop, Parse, sAttach, |, %A_Space%%A_Tab%
pmsg.AddAttachment(A_LoopField)
pmsg.Send()
msgbox, Email sent.
}
最佳答案
这可能不一定是一个完整的答案,但作为评论太长了,并且您的脚本需要解决一些问题。
我没有/使用 gmail SMTP 服务器,所以我无法测试。
所以到问题。
在您指定包含表情符号的字符串的所有尝试中,这只是一个正确的:MailSubject = ✌️ Welcome to Vinewood Studios!
我斜体正确,因为它是遗留语法,在现代表达式语法中,它应该是这样的:MailSubject := "✌️ Welcome to Vinewood Studios!"
这是正确的,如果 您使用支持 Unicode 字符(您的表情符号)的编码保存脚本文件,并使用 Unicode AHK 版本运行脚本(不过在这些方面您应该没问题,因为您设法获得了一个 AHK 消息框来显示该表情符号字符)。
以下是您错误尝试的错误所在:MailSubject = {U+1F601} "Welcome to Vinewood Studios!"
仍然使用旧语法。所有这些都将被解释为文字字符串。 AHK 认为这个字符串没有什么特别之处。MailSubject := {U+1F601} "Welcome to Vinewood Studios!"
MailSubject := {U+1F601} . "Welcome to Vinewood Studios!"
这两个是相等的(连接运算符 .
是可选的/冗余的),但它们也同样错误。{U+...}
Unicode 字符表示法应该被视为只是一个普通的字符串,没有什么比这更特别的了。一个受支持的 AHK 命令,然后注意到它并将其转换为相应的 Unicode 字符。
现在您要做的是将一些错误定义的(因此是您的脚本错误)对象与一个字符串连接起来。
正确的是MailSubject := "{U+1F601} Welcome to Vinewood Studios!"
然而 ,正如您可能已经注意到的,我提到只有受支持的 AHK 命令才会关心 {U+...}
符号。
该符号用于发送命令 (docs) ,所以它不会对你有任何帮助。您的电子邮件主题只会读取文字字符串 {U+1F601} Welcome to Vinewood Studios!
.
如果您想在不输入 Unicode 字符的情况下将 Unicode 字符存储在脚本中(这很有用,因此您不必担心在尝试共享脚本文件或诸如此类时始终在脚本文件上保留正确的编码),您可以使用例如Chr()
(docs)像这样:MailSubject := Chr(0x1F601) " Welcome to Vinewood Studios!"
.emoji := {U+1F601}️
MailSubject := emoji . "Welcome to Vinewood Studios!"
这里有一些如上所述的问题。
如果您使用 emoji := "{U+1F601}️"
,如果在支持的 AHK 命令(发送命令)上使用,它将是正确的(表情符号和单词之间缺少空格 Welcome
)。MailSubject := ✌️ Welcome to Vinewood Studios!
在这里,您使用的是现代表达式语法(应该如此),但是您没有使用引号来表示您正在指定一个字符串。
所以你在这里做的是将五个空变量(名为 ✌️
、 Welcome
、 to
、 Vinewood
和 Studios
)连接在一起,这让你一无所有,然后你就进入了带有逻辑非运算符的值 !
(docs) .
没有任何评估为 false,然后反转 false 评估为 true (1)。
好的,希望您现在能够理解您的尝试出了什么问题。
但如上所述,MailSubject = ✌️ Welcome to Vinewood Studios!
尝试应该有效吗? (至少据我所知,我只能假设您使用支持编码保存脚本并使用 Unicode AHK 版本运行脚本)。
很可能出现问题的是您必须为 CDO.Message
指定支持编码。目的。
Google 搜索 CDO.Message encoding
对于遇到此问题的人(例如 this 或 this )产生了相当多的结果,并且人们正在应用各种解决方案。其中最常见的似乎是指定一个名为 charset
的字段。至 utf-8
.
我无法测试实际的解决方案,但我希望这会有所帮助。
如果您仍然无法理解某些 AHK 代码,我可以回答这些问题。
关于html-email - 通过带有表情符号的 ahk 发送电子邮件会产生问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65869757/
我在 Chrome 上做了一些测试,requestAnimationFrame 产生了 61 fps 而 setTimeOut( callback, 0 ) 产生了 233 fps。 如果一个人想要超
当我调试代码时,我发现 GCC 和 Clang 都为 0.0/0.0 产生 nan,这是我所期望的,但 GCC 产生的 nan 将符号位设置为 1,而Clang 将其设置为 0(如果我没记错的话,与
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我在 R Studio 中有一个时间序列。现在我想计算这个系列的log()。我尝试了以下方法: i <- (x-y) ii <- log(i) 但是我得到以下信息:Warning message: I
我有兴趣了解 JavaScript 的内部结构.我试图阅读 SpiderMonkey 的来源和 Rhino但是绕过我的头是相当复杂的。 我问的原因是:为什么像 (![]+[])[+!![]+[]] 生
我们在 Delphi 中使用标准 TWebbrowser 组件,该组件在内部使用 mshtml.dll。另外,我们使用注册表来确保页面使用新的渲染引擎( Web-Browser-Control-Spe
我必须实现一个序列化/反序列化类,并且我正在使用 System.Xml.Serialization 。我有一些IList类型属性并希望在 IList 中序列化解码属于具有特定区域性信息的列表的所有十进
我有一个 Java 应用程序,它读取包含 SQL 查询的 JSON 文件,并使用 JDBC 在数据库上触发它们。 现在我有 5 万个这样的文件,我需要生成 5 万个独立线程来读取每个文件并将它们上传到
我正在尝试将 TensorFlow 入门页面上的示例线性回归程序调整为二次回归。为此,我只是添加了另一个变量并更改了函数。然而,这似乎会导致 NaN 值。这是我的代码: import numpy as
申请后KernelPCA到我的数据并将其传递给分类器 ( SVC ) 我收到以下错误: ValueError: Input contains NaN, infinity or a value too
这背后的想法是,如果我的数据库中存在登录名(正确的用户名+密码),我将重定向到一个页面,并且在进行此身份验证后,他们可以将消息存储在文本文件中。代码非常简单尽管我不确定为什么会收到 IllegalSt
我有一个返回 log10 值的函数。在将它们转换为正常数字时,出现溢出错误。 OverflowError: (34, 'Numerical result out of range') 我检查了日志值,
nosetests 抛出一个 ImportError,尽管我认为这是一个正确配置的 virtualenv。 ==============================================
我是这个网站的新手,所以如果我做错了什么,我提前道歉。当我尝试使用 kivy-garden 的 ScrollLabel 时,它给了我一个错误。基本上我正在尝试创建一个控制台日志,并且我需要能够在文本框
任何人都对 MDSJ 有任何经验?以下输入仅产生 NaN 结果,我不明白为什么。文档非常稀少。 import mdsj.Data; import mdsj.MDSJ; public class MDS
我有一个非常简单的 scala jcuda 程序,它添加了一个非常大的数组。一切都编译和运行得很好,直到我想从我的设备复制超过 4 个字节到主机。当我尝试复制超过 4 个字节时,我收到 CUDA_ER
我正在使用 Hero 组件在两个页面之间创建动画。Hero 组件用于包装一个 Image 小部件(没问题)和一个 Container 小部件(有问题)。 抛出以下溢出错误: ══╡ EXCEPTIO
我无法理解页面 https://developer.mozilla.org/en/JavaScript/Reference/Operators/Special/void 中的这一段: This ope
当在 Angular 中使用不立即触发事件的异步管道时(http 请求或任何有延迟的可观察对象),第一个值为 null为什么会这样?如何避免这种情况? 第一个变化: SimpleChange {
如果一个导入的库生成了一个会 panic 的 goroutine 怎么办?在这种情况下,开发人员无法阻止程序退出。 就像在这段代码中一样,使用延迟恢复调用一个错误的库没有帮助,因为该库正在生成一个 p
我是一名优秀的程序员,十分优秀!