2017-05-22 4 views
2

J'ai un problème lors de l'envoi d'un e-mail à l'aide du système de messagerie CDOSYS dans ASP Classic en utilisant le format HTMLBody. Il semble avoir une limite de caractères, et lorsque le message électronique est envoyé, il coupe le message au bas de l'e-mail. Au début, je pensais que le message était envoyé avant que le courriel entier puisse être écrit, mais après quelques recherches et dépannages, il y a une sorte de limite de caractères du message CDOSys lors de l'utilisation de HTMLBody. Ma question est la suivante: existe-t-il un moyen de contourner la limite de caractères ou de contourner la restriction? C'est seulement pour HTMLBODY.ASP Classic CDOSYS E-mail via le format HTMLBody

EDIT: Le drapeau "en double" ne m'aurait pas aidé. Ce n'est pas un problème de troncature, mais un problème avec les limitations HTMLBody qui empêchent les messages longs d'être entièrement envoyés dans le message. J'ai vérifié cet article et ce n'était pas ce que je recherchais une réponse. Les réponses sur ce sujet étaient suffisantes pour répondre à ma question. Merci à tous.

Voici mon code:

  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="[email protected]" 
    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

Si vous faites un 'Response.Write (Server.HTMLEncode (HTML))' avant le '.Send', voyez-vous le message entier? – SearchAndResQ

+0

Merci pour votre réponse. J'ai juste essayé et ça ne va même pas jusque là. Toujours se coupe. – jrp1982

Répondre

1

j'ai pu le comprendre par un autre thread faisant une recherche google. Si vous placez la ligne ci-dessous pour chaque 3-5 lignes de l'e-mail, il semble "réinitialiser" ou boucle la limite de nombre de retour au début sans changer le format de l'e-mail. Je ne suis pas sûr que ce soit la bonne façon de le gérer, mais cela semble fonctionner pour un certain nombre de messages que j'ai créés aujourd'hui qui ont des messages assez longs qui seraient sinon coupés lorsque le message est envoyé. J'espère que cela aide quelqu'un d'autre avec ce problème.

HTML = HTML & vbCrLf 
2

Il s'agit d'un problème de longueur de ligne. Sans le crlf vous soufflez la longueur maximale à 998 caractères. La meilleure chose à faire serait d'écrire une fonction qui divise le contenu en mi-chaîne, en évitant les balises html. Texte HTML, par ex. dans un para, ignore les sauts de ligne.

Le RFC dit

Il y a deux limites que, de ce standard sur le nombre de caractères en ligne. Chaque ligne de caractères DOIT être au plus 998 caractères, et DEVRAIT ne pas dépasser 78 caractères, à l'exclusion de le CRLF. La limite de 998 caractères est due aux limitations dans de nombreuses implémentations qui envoient, reçoivent ou stockent des messages au format de message Internet ne pouvant simplement pas gérer plus de 998 caractères sur une ligne. La réception des implémentations ferait bien de traiter un nombre arbitrairement grand de de caractères dans une ligne pour des raisons de robustesse. Cependant, il y a tellement de nombreuses implémentations qui (en conformité avec les exigences de transport de [RFC2821]) n'acceptent pas les messages contenant plus de que 1000 caractères incluant les CR et LF par ligne, il est important que les implémentations ne créent pas de tels messages.

Le plus conservatrice recommandation 78 de caractères est d'accueillir les nombreuses implémentations d'interfaces utilisateur qui affichent ces messages qui peut tronquer, ou une pellicule désastreuse, l'affichage de plus de 78 caractères par ligne, en dépit du fait que ces implémentations ne sont pas conformes à l'intention de cette spécification (et à celle de [RFC2821] si elles provoquent réellement la perte de l'information ).Encore une fois, même si cette limitation est mis sur messages, il est encumbant sur les implémentations qui affichent des messages

Merci à le blog à emailonacid pour le pointeur.

+0

Merci pour cette info. C'est certainement une meilleure approche que d'ajouter vbCrLf tous les 3-5 lignes qui imo bâclé mais travaillé. Je vais essayer et voir comment ça se passe. Appréciez votre aide! – jrp1982