Subrutin för snabb mailhantering i asp
Förord
Jag gjorde denna funktionalitet när jag utvecklade www.pinjata.com. Smidigt för mailhantering, så som påminnelsemail, glömt-lösen-mail, nyhetsbrev, Du-har-fått-ett-nykort-mail. CDO används - något nyare än CDONTS.Newmail XHTML 1 validerad och lätt att anpassa i css ( medföljer ej ) Funktionen Generate_mail och Subrutinen SendMail läggs med fördel i en fil som inkluderas på alla sidor eller på de sidor som de behövs. Inget har gjorts i funktionen för att kontrollera escapade tecken. Lite får man göra själv ;)Innehåll
»»
»
»
»
Relaterade artiklar
» Skapa en bildomskalningssubrutin - med aspImage» Skapa en bildomskalningssubrutin - med w3Image
» Skapa en bildomskalningssubrutin för aspJpeg
Skapa HTML-mall för mailet
<%
Function Generate_mail(m_subject, m_headline1, m_text1, m_headline2, m_text2,
m_headline3, m_text3)
m_html=("Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">")&VbCrLf
m_html=m_html&("")&VbCrLf
m_html=m_html&(" ")&VbCrLf
m_html=m_html&(" "&m_subject&" ")&VbCrLf
m_html=m_html&(" href=""http://www.foretaget.com/css/newsletter.css"" />")&VbCrLf
m_html=m_html&(" ")&VbCrLf
m_html=m_html&(" ")&VbCrLf
m_html=m_html&(" ")&VbCrLf&VbCrLf
m_html=m_html&(" ")&VbCrLf
If m_headline1 <> "" Then m_html=m_html&(""&m_headline1&"
")&VbCrLf
If m_text1<> "" Then
m_html=m_html&(" "&m_text1&"") &VbCrLf&VbCrLf
End If
If m_headline2 <> "" Then m_html=m_html&(""&m_headline2&"
")&VbCrLf
If m_text2<> "" Then
m_html=m_html&(" "&m_text2&"") &VbCrLf&VbCrLf
End If
If m_headline3 <> "" Then m_html=m_html&(""&m_headline3&"
")&VbCrLf
If m_text3<> "" Then
m_html=m_html&(" "&m_text3&"") &VbCrLf&VbCrLf
End If
m_html=m_html&(" ")&VbCrLf
m_html=m_html&(" Företaget AB
")& VbCrLf
m_html=m_html&(" info@foretaget.com
")&VbCrLf
m_html=m_html&(" www.foretaget.com ")&VbCrLf
m_html=m_html&(" ")&VbCrLf
m_html=m_html&("")
Generate_mail=m_html
End Function
%>
Jag brukar använda h3 på rubrik 2 och 3 men det ville inte Pellesoft. Det blir någon felformatering.Observera nu att när styckena läggs in inte omsluts av
&
. Detta för att jag använder fckeditor som automatiskt lägger till dessa, så de finns redan i min databas.Du kan även definiera CSS direkt i mallen om du vill.
Det är bäst att använda 100% i bredd på html, body och div. p och h1, h2 mfl har det redan fördefinierat då de är inline:block;
Använd % eller ems för fonter och linjehöjd. Detta för att underlätta för synskadade och tänka på användarvänligheten.
Html är bara att trycka in också - Men tänk på valideringen - ;)
Generera html-innehållet
<%
subject = "Nyhetsbrev vecka 19"
headline1="Tjena din gamle galosch"
text1= "Här kan du skicka in din artikel till pellesoft och få den publicerad. "&_
"Följ nedanstående steg och se till att vara noggrann för att minska arbetet vid publicering. "&_
"Alla eventuella bilder och bifogade filer laddas upp. "&_
"Du behöver inte ha allt material klart nu utan kan komplettera online tills du är nöjd. "&_
"Se högerkolumnen."
headline2=""
text2="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore . "&_
"Ut enim ad minim veniam, quis nostrud exercitation ex ea commodo consequat. "&_
"Duis aute irure dolor in reprehenderit in voluptate velit pariatur. "&_
"Excepteur sint occaecat cupidatat non proident, mollit anim id est laborum. "
headline3="Avslutningsvis"
text3="Tack för visat intresse!
Lars "
htmlbody=Generate_mail(subject, headline1, text1, headline2, text2, headline3, text3)
%>
Raderna brytna här för att det skall se bra ut i artikeln.
Nu har du en klar HTMLmall klart att skicka!
Skicka-mail subrutinen
Också att inkludera i samma fil<%
'Syntax: SendMail [To], [From], [Mail Subject], [HTML Body], [BCC]
'**Example:
'SendMail """Anders Andersson"" ", """Företaget AB""
", "Welcome!", "Hi!
", emaillist
Sub SendMail(strTo, strFrom, strSubject, strBody, strBCC)
Set msg = Server.CreateObject("CDO.Message")
'On Error Resume Next
msg.To = strTo
msg.From = strFrom
If strBCC<> "" Then msg.Bcc=strBCC
msg.Subject = strSubject
msg.HTMLBody = strBody
' ** Ta bort kommentartecknen om en plain-text-version skall skickas med.
' Bra att göra ibland då webbaserade mail inte alltid läser HTML fullt ut
' Se funktion för ClearHTMLTags stycket nedan.
'textbody=Replace(strBody,VbCrLf,"")
'textbody=Replace(strBody,"",(VbCrLf&VbCrLf))
'msg.textBody = ClearHTMLTags(Replace(strBody,"
",VbCrLf), 2)
msg.Send
Set msg = Nothing
End Sub
%>
Plain text-version-funktion
Skall inkluderas tillsammans med funktionen och subrutinen<%
Function ClearHTMLTags(strHTML, intWorkFlow)
dim regEx, strTagLess
strTagless = strHTML
set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
if intWorkFlow <> 1 then
regEx.Pattern = "<[^>]*>"
strTagLess = regEx.Replace(strTagLess, " ")
end if
if intWorkFlow > 0 and intWorkFlow < 3 then
regEx.Pattern = "[<]"
strTagLess = regEx.Replace(strTagLess, "<")
regEx.Pattern = "[>]"
strTagLess = regEx.Replace(strTagLess, ">")
end if
set regEx = nothing
ClearHTMLTags = strTagLess
End Function
%>
Anropa subrutinen
Det är jättelätt!
<%
sendto="jonas@foretaget.com" 'Eller utökat; sendto="""Jonas"" "
sendfrom= "frasse@hotmail.com" 'Eller utökat; sendfrom="""Frasse"" "
mail_subject="Nyhetsbrev vecka 19"
'Här kan vi ha en lista på BCC-mottagare. Perfekt när man skall skicka nyhetsbrev.
'Jag brukar då använda samma ansändare som mottagare (sendto & sendfrom)
bcclist=""
' Och mailinnehållet som vi genererade innan (htmlbody)
SendMail(sendto, sendfrom, mail_subject, htmlbody, bcclist)
%>
Klart!!
Lycka till!
Jag kommer att komplettera med ett eller flera css-exempel senare.
Jonas
0 Kommentarer