简体   繁体   中英

ASP, vbscript, CDO Email through AWS is truncated?

I am moving this classic ASP app to AWS and using AWS SES SMTP to send site emails (automated, post registration email).

So, the code below works but when the email arrives it is truncated (incomplete)?

Mail Function:

 Function Sendmail(Sender, Subject, Recipient, Body) dim myMail, strServer strServer = Request.ServerVariables("server_name") if strServer <> "localhost" then Set myMail=Server.CreateObject("CDO.Message") myMail.Subject=Subject myMail.From=Sender myMail.To=Recipient myMail.HTMLBody=Body 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")="email-smtp.us-east-1.amazonaws.com" 'Server port myMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=465 'requires authentication myMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1 'username myMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusername")="a username" 'password myMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendpassword")="a password" 'startTLS myMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpusessl")=true myMail.Configuration.Fields.Update myMail.Send set myMail=nothing end if End function 

Mail Body

 <!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'><html lang='en'><head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1258'> <meta name='viewport' content='width=device-width, initial-scale=1'> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <meta name='format-detection' content='telephone=no'> <title>Title</title> <link rel='stylesheet' type='text/css' href='http://www.website.com/styles.css'> <link rel='stylesheet' type='text/css' href='http://www.website.com/responsive.css'></head><body style='margin:0; padding:0;' bgcolor='#F0F0F0' leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'><table border='0' width='100%' height='100%' cellpadding='0' cellspacing='0' bgcolor='#F0F0F0'><tr><td align='center' valign='top' bgcolor='#F0F0F0' style='background-color: #F0F0F0;'> <br/> <table border='0' width='600' cellpadding='0' cellspacing='0' class='container'><tr><td class='header' align='left'><img src='http://www.website.com/images/email/logo_small_en.png'/> </td></tr><tr> <td class='container-padding content' align='left' bgcolor='#FFFFFF'> <br/><div class='title'>Welcome to the site! </div><br/><div class='body-text'> <p>Welcome to the website<div class='hr'></div><br/><div class='subtitle'>Have fun!</div><br/> </td></tr><tr> <td class='container-padding footer-text' align='left'><br/>&copy; 2016 <br/> <br/>You are receiving this email because you registered for the website. Please click here to <a href=''>unsubscribe</a>. <br/> </td></tr></table></td></tr></table></body></html> 

Truncated always at the same spot?

 <!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'><html lang='en'><head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1258'> <meta name='viewport' content='width=device-width, initial-scale=1'> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <meta name='format-detection' content='telephone=no'> <title>Title</title> <link rel='stylesheet' type='text/css' href='http://www.website.com/styles.css'> <link rel='stylesheet' type='text/css' href='http://www.website.com/responsive.css'></head><body style='margin:0; padding:0;' bgcolor='#F0F0F0' leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'><table border='0' width='100%' height='100%' cellpadding='0' cellspacing='0' bgcolor='#F0F0F0'> <tr> <td align='center' valign='top' bgcolor='#F0F0F0' style='background-color: #F0F0F0;'> <br/> <table border='0' width='600' cellpadding='0' cellspacing='0' class='container'> <tr> <td class='he 

I can't seem to track this down? Is the error in my function or the mail body? Is it an AWS limitation?

Thanks for your thoughts,

SMTP servers can throw a "Line too long" error when a line of the email exceeds some server-defined length. Since your message is always truncated at the same spot try inserting line breaks into your message body. I know AWS SES SMTP can return this error but I am unsure as to what the limit is. Here is a related conversation with a similar error and CDO for reference.

CDO uses 7bit for content transfer encoding by default, which does not truncate the long lines.

You don't need a user defined function but specify an appropriate content transfer encoding for the message body.

8bit , quoted-printable and base64 are standard transfer encodings will take care of the long lines.

'...
myMail.Configuration.Fields.Update
myMail.HTMLBodyPart.ContentTransferEncoding = "8bit"
myMail.Send
'...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM