使用HTMLBody格式在ASP Classic中使用CDOSYS消息系统发送电子邮件时遇到问题。它似乎有一个字符限制,当发送电子邮件时,它会在电子邮件底部切断消息。起初,我认为邮件是在整个电子邮件写入之前发送的,但经过一些故障排除和研究后,使用HTMLBody时会出现某种CDOSys邮件字符限制。我的问题是,有没有办法覆盖字符限制或绕过限制?这仅适用于HTMLBODY。
编辑:"重复"国旗不会帮助我。这不是截断问题,而是HTMLBody限制的问题,可防止在消息中完全发送冗长的消息。我检查了那篇文章,而不是我在寻找答案。这个帖子的回答足以回答我的问题。谢谢大家。这是我的代码:
Set myMail=CreateObject("CDO.Message")
HTML = HTML & "<html>"
HTML = HTML & "<body>"
HTML = HTML & "<font face='calibri'>"
HTML = HTML & "<img src='http://" & SupportTagURLWebPath & "/images/SkypeEmailHeader.png'>"
HTML = HTML & "<br><Br>"
HTML = HTML & "<font face='calibri'>"
HTML = HTML & "<b>To " & Request.Form("SkypeTemplateName") & ":</b>"
HTML = HTML & "<br><br>"
HTML = HTML & "Thank you for contacting the Bank of America Service Desk. We're committed to providing seamless support in the moments that matter."
HTML = HTML & "<br><br>"
HTML = HTML & "We heard your concerns with Skype for Business audio/video, and recommend using approved Skype for Business devices to resolve the issue."
HTML = HTML & "<br><br>"
HTML = HTML & "<h4><font color='red'>What do I need to do?</font></h4>"
HTML = HTML & "<div style='background-color: #FFF8DC;'>"
HTML = HTML & "1. Visit the <a href='http://u.go/pchk'>Skype for Business Peripheral Checker</a> & complete the form.<br>"
HTML = HTML & "<img src='http://" &SupportTagURLWebPath & "/images/SkypeEmailbody.png'><br>"
HTML = HTML & "4. Once approved, your new device(s) will be shipped to you. To get started, visit the <a href='http://u.go/tIxvB5'>Skype for Business page</a> and select <i>Setup your equipment</i> tab."
HTML = HTML & "</div>"
HTML = HTML & "<br><br>"
HTML = HTML & "<br>"
HTML = HTML & "If you still encounter Skype for Business audio/visual issues with your new device(s), please <a href='http://u.go/7I76vm'>submit a web ticket</a> and one of our expert Bank of America Service Desk employees will reach out to you."
HTML = HTML & "Thank you,"
HTML = HTML & "<br>"
HTML = HTML & "Premium Service Desk"
HTML = HTML & "<br><Br>"
HTML = HTML & "<img src='http://" & SupportTagURLWebPath & "/images/SkypeEmailFooter.png'>"
HTML = HTML & "</font>"
HTML = HTML & "</body>"
HTML = HTML & "</html>"
myMail.Subject= "Skype for Business audio/visual experience"
myMail.From=EMAILADDRESS
myMail.To=Request.Form("SkypeTemplateEmail")
'mymail.CC= Request.Form("displayemail")
myMail.BCC="psd.wmwhc@bao.com"
myMail.ReplyTo="Do Not Reply"
'myMail.TextBody="This is a message."
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
'Name or IP of remote SMTP server
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver")="amta3dns.bo.com"
'Server port
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25
myMail.Configuration.Fields.Update
'myMail.TextBody= Request.Form("genfeedback")
myMail.HTMLBody=HTML
myMail.Send
set myMail=nothing
答案 0 :(得分:3)
这是一个行长问题。没有crlf你最大长度为998个字符。最好的办法是编写一个在mid-string中拆分内容的函数,避免使用html标签。 HTML文字,例如在一个段落中,忽略了换行符。
RFC说
此标准对数量有两个限制 一行中的字符。每行字符必须不超过 998个字符,不应超过78个字符,不包括 CRLF。
998字符限制是由于许多实现中的限制 发送,接收或存储Internet消息格式消息 根本无法处理一行超过998个字符。接收 实现可以很好地处理任意大的数字 为了鲁棒性,一行中的字符。但是,有这样的 许多实施(符合运输 [RFC2821]的要求不接受包含更多内容的消息 超过1000个字符,包括每行的CR和LF,这很重要 对于不创建此类消息的实现。
更为保守的78字符建议是适应 显示这些的用户界面的许多实现 可能截断或灾难性地包装显示的消息 尽管如此,每行超过78个字符 实现不符合此意图 规范(和[RFC2821]的规范,如果它们确实导致 信息丢失)。同样,即使有这种限制 消息,它是显示消息
的实现的障碍
感谢您访问emailonacid的博客作为指针。
答案 1 :(得分:1)
我能够通过另一个进行谷歌搜索的线程来解决这个问题。如果您为电子邮件的每3-5行放置以下行,则似乎“重置”或将数字限制循环回到开头而不更改电子邮件的格式。我不确定这是否是正确的处理方式,但它似乎适用于我今天创建的许多消息,这些消息具有相当长的消息,否则在消息发送时会被切断。我希望这有助于解决这个问题。
HTML = HTML & vbCrLf
答案 2 :(得分:0)
我没有在脚本中插入消息正文,而是使用大量的HTML = HTML和“文本在这里”,而是创建了一个实际的HTML文件,并将每一行读入HTMLBody:
Set myFSO=Server.CreateObject("Scripting.FileSystemObject")
' Read Email Template File
Set myFile=myFSO.OpenTextFile(Server.MapPath("..\msg\"+Request.Form("Template")+".html"), 1)
EmailBodyTemplate=""
Do While myFile.AtEndOfStream=False
EmailBodyTemplate=EmailBodyTemplate&myFile.ReadLine
Loop
myFile.Close
Set myFile=Nothing
Set myFSO=Nothing
myMail.HTMLBody=EmailBodyTemplate
这不仅会自动将vbCrLf放置在从文件读取的每一行的末尾,而且还使该函数具有通用性,以便您可以通过更改模板名称来发送所需的任何电子邮件。