2016-09-17 4 views
1

Я перемещаю это классическое приложение ASP в AWS и используя AWS SES SMTP для отправки электронной почты сайта (автоматическое, почтовое электронное письмо).ASP, vbscript, CDO Электронная почта через AWS усечена?

Итак, приведенный ниже код работает, но при поступлении сообщения он усечен (неполный)?

Почта Функция:

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

Почта 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>

Усеченный всегда в одном месте?

<!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

я могу показаться, чтобы не отслеживать это вниз? Является ли ошибка в моей функции или почтовом ящике? Это ограничение AWS?

Спасибо за ваши мысли,

ответ

1

SMTP-сервера может бросить «слишком долго» Ошибку, когда строка из письма превышает некоторую серверную определенную длину. Поскольку ваше сообщение всегда усекается в одном месте, попробуйте вставить разрывы строк в тело сообщения. Я знаю, что AWS SES SMTP может вернуть это error, но я не уверен, каков предел. Вот связанный conversation с аналогичной ошибкой и CDO для справки.

+0

Спасибо! Попробуй это! – user1964234

+0

Блестящий! Я использовал функцию WordWrap из этого потока и применил к телу HTML. Работает! http://forums.devarticles.com/asp-development-3/send-email-via-asp-15546.html – user1964234

+0

Woohoo! Спасибо за взлом ASP/ADO из прошлого! – jbird

1

CDO использует 7bit для кодирования передачи содержимого по умолчанию, которое не усекает длинные строки.

Вам не нужна определенная пользователем функция, но укажите подходящую кодировку передачи содержимого для тела сообщения.

8bit, quoted-printable и base64 являются стандартными кодировками передачи, которые позаботятся о длинных линиях.

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

 Смежные вопросы

  • Нет связанных вопросов^_^