Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP CLASSIC中的邮件函数在正文中按字面意思发送html标记_Html_Email_Asp Classic - Fatal编程技术网

ASP CLASSIC中的邮件函数在正文中按字面意思发送html标记

ASP CLASSIC中的邮件函数在正文中按字面意思发送html标记,html,email,asp-classic,Html,Email,Asp Classic,几周前,我在ASP经典代码中实现了一个邮件函数,但它生成了一些奇怪的标记/样式错误 当使用mail函数发送邮件时,有时会在语法正确的情况下逐字输出html标记 文字html输出见下图: 正如您在下面的图片中所看到的,字体标记按字面意思显示,而它与其他列完全相同,显示正确。奇怪的是,它有时会显示错误的字体,然后是一些随机的标记,然后是一个没有显示的边框,或者是一个乱七八糟的href(点击href会生成一些随机的%20个字符,当鼠标悬停在它上面时,它会显示它应该显示的href) 这是某种ASP经典

几周前,我在ASP经典代码中实现了一个邮件函数,但它生成了一些奇怪的标记/样式错误

当使用mail函数发送邮件时,有时会在语法正确的情况下逐字输出html标记

文字html输出见下图:

正如您在下面的图片中所看到的,字体标记按字面意思显示,而它与其他列完全相同,显示正确。奇怪的是,它有时会显示错误的字体,然后是一些随机的
标记,然后是一个没有显示的边框,或者是一个乱七八糟的
href
(点击href会生成一些随机的%20个字符,当鼠标悬停在它上面时,它会显示它应该显示的href)


这是某种ASP经典邮件功能错误还是。。?看起来只有一个html标签会被逐字显示,而且不会超过1个。有时它也根本不生成文字标记(因此它输出正确)

邮件功能如下:

函数SendMail(sBody,sEmail)
设置mail=server.createobject(“perits.mailssender”)
Mail.Host=“spamfilter.myWebsite.com”为必填项
Mail.Port=587'可选。端口默认为25
Mail.From=”support@mywebsite.com"
Mail.FromName=“我的名字”
sEmail=Uploader.Form(“电子邮件”)
Mail.AddAddress语义邮件
Mail.Subject=“Tickets:&FormSubject
Mail.Body=sBody
Mail.IsHTML=True
邮寄
端函数
邮件正文就是这样生成的:

sBody=“Geachte”&FormNaam&,

“ sBody=sBody和“recentelik heeft u een ticket aangemaakt betreffende”和FormSubject和“。
” sBody=sBody&“我们的票是由斯内尔·莫盖利克(snel Mogelik)和贝汉德伦(behandelen)提供的。我们的票上的信息是由你的经纪人提供的。”&“

” sBody=sBody&“
” sBody=sBody&“ sBody=sBody和“Verstuur Datumvo或Afdeling Soort Ticket DerWerpticket Beschrijing” sBody=sBody&“ sBody=sBody&“ sBody=sBody和day(sToday)&“-”和month(sToday)&“-”和year(sToday) sBody=sBody&“ sBody=sBody&“ sBody=sBody&Formatomating自动清洁 sBody=sBody&“ sBody=sBody&“ sBody=sBody&formproblemclean sBody=sBody&“ sBody=sBody&“ sBody=sBody和formondererp sBody=sBody&“ sBody=sBody&“ sBody=sBody和formbeschrijing sBody=sBody&“ sBody=sBody&“
” 随机化 intLength=100000 内部域=CInt((Rnd*10000)Mod intLength)+1 '选择最后一个ID或发件人/主题/唯一对象的ID sBody=sBody和“通过onderstaande knop在bijhouden买机票:

” sBody=sBody&“ sBody=sBody&“ sBody=sBody&“

” sBody=sBody&“
” sBody=sBody和“Indien de knop het niet dot kunt u de volgende link volgen:http://mywebsite/ticket.asp?type=ticket&ticketid=&TicketID&&validatie=“&FormRecode&”

“ sBody=sBody&“致以亲切的问候,&”

“ sBody=sBody和“我的公司B.V.”和“

” sBody=sBody和“我的公司BV”和“
” sBody=sBody&“GSome address 22 |一些邮政拉链|地方”&“
” sBody=sBody&“一些文本| Percel编号100”&“
” sBody=sBody&“T:&”0416-322792&“
” sBody=sBody&“F:&”0416-322582&“
” sBody=sBody和“E:support@mysite.com“&”
” sBody=sBody&“W:www.mysite.com”和“

” err=SendMail(sBody,sEmail)
根据使用的经验(因为这是一个第三方组件,默认情况下不可用,内置替代品是CDO),我总是发现如果HTML的结构不正确(即缺少标记终止符),结果将不会总是如预期的那样

在这种特殊情况下,它是一个HTML片段,而不是一个真正的文档,因为它没有正确定义

<html> <head> </head> <body> </body> </html> 也没有使用
终止
标记,我怀疑这是导致此问题的原因


不过,我建议您以后编写通过验证的HTML以避免此类问题。

无论Persits邮件库使用何种编码方法,都可能存在某种边界问题,请尝试在节之间添加一些空白,例如vbCRLF。是否有任何数据包含任何<或>,如果是,请确保这些都转义为,而且很简单,您没有正确终止标记,因此
perits.mailssender
将其视为文本。没有一个
标记以
正确终止。您还没有构造有效的HTML文档(没有
标记)。上的所有示例都显示完全限定的HTML结构,因此我将从HTML验证开始。谢谢大家。根据反馈更新了结构,现在看来它正在运行。“这是某种ASP经典邮件功能错误吗”-如果您不知道,Persits Mailsender是第三方组件,您必须购买并安装。如果您需要从其他服务器发送电子邮件,请查看CDO。