Link to home
Start Free TrialLog in
Avatar of Lev Seltzer
Lev SeltzerFlag for Israel

asked on

How to send utf-8 email using Classic ASP

I am having difficulty sending a message using Classic ASP and a mail component. I have created a test program (below) which uses one of several available email components. The result of all of them is the unicode text is displayed as ????.

The program below is currently on the server http://www.wow-imports.com/WBMailTest.asp. It only sends email to me for the test.

What am I doing wrong? How do I get at least ONE of these components to send out my test (so that I can then go back to my real program and get that to work)?

Thank you.
<html>
 
<head>
<%@Language=VBScript Codepage=65001%>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta content="en-us" http-equiv="Content-Language">
<title>Mail Test</title>
</head>
 
<body>
 
<% 
 
strFromName="Lev Seltzer"
strFromEmail="lev@seltzer.co.il"
strToName="Test Recipient"
strToEmail="lev.seltzer@gmail.com"
strLetter="HI<br>éÜÕÝ"
strContactFormSubject="WEBuilder Test"
strMailServer="LocalHost"
strMailComponent="JMAIL"
 
 
select case strMailComponent
case "SMTPsvg"
	Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
	Mailer.FromName   = strFromName
	Mailer.FromAddress= strFromEmail
	Mailer.AddRecipient strToName,strToEmail
	if len(strReplyToName)>0 then
		Mailer.ReplyTo = strReplyToEmail
	end if
	Mailer.RemoteHost = strMailServer
	Mailer.Subject    =  strContactFormSubject
	Mailer.ContentType = "text/html"
	Mailer.BodyText = strLetter
	response.write "Mail Component used: SMTPsvg.Mailer version " & Mailer.version & "<br/>"
	if Mailer.SendMail then
		SendLetters = "Mail sent."
	else
		SendLetters = "Mail send failure. Error was " & Mailer.Response
	end if
case "CDONTS"
	Set mailer = CreateObject("CDONTS.NewMail")
    Mailer.From= strFromEmail
    Mailer.To=strToEmail
	if len(strReplyToName)>0 then
		Mailer.Value("Reply-To")  = strReplyToEmail
	end if
    Mailer.Subject=strContactFormSubject
	Mailer.BodyFormat=0
    Mailer.MailFormat=0
	Mailer.Body = strLetter
	response.write "Mail Component used: CDONTS<br/>"
    Mailer.Send
    SendLetters = "No confirmation with CDONTS"
case "CDOMESSAGE"
	Set mailer = CreateObject("CDO.message")
    Mailer.From= """" & strFromName & """<" & strFromEmail & ">"""
	if len(strReplyToName)>0 then
		Mailer.ReplyTo = """" & strReplyToName & """<" & strReplyToEmail & ">"""
	end if
    Mailer.To=strToEmail
    Mailer.Subject=strContactFormSubject
	Mailer.HTMLBody = strLetter
	response.write "Mail Component used: CDO.Message<br/>"
    Mailer.Send
    SendLetters = "No confirmation with CDO.MESSAGE"
case "PERSISTS.MailSender"
	Set Mailer = Server.CreateObject("Persits.MailSender")
	Mailer.Host       = strMailServer
	Mailer.FromName   = strFromName
	Mailer.From       = strFromEmail
	Mailer.AddAddress strToEmail,strToName
	if len(strReplyToName)>0 then
		Mailer.AddReplyTo strReplyToEmail,strReplyToName
	end if
	Mailer.Subject    =  strContactFormSubject
	Mailer.isHTML = True
	Mailer.Body = strLetter
	response.write "Mail Component used: Persits.MailSender version " & Mailer.version & "<br/>"
case "ASPSMARTMAIL"
	Set Mailer = Server.CreateObject("AspSmartMail.SmartMail")
	Mailer.SenderName   = strFromName
	Mailer.SenderAddress= strFromEmail
	Mailer.Recipients.Add strToEmail, strToName
	Mailer.server = strMailServer
	Mailer.Subject    =  strContactFormSubject
	Mailer.ContentType = "text/html"
	Mailer.Body = strLetter
	response.write "Mail Component used: AspSmartMail.SmartMail<br/>"
	SendLetters = "Mail Sent."
	On Error Resume Next
    Mailer.Send
    If Err <> 0 Then
    	SendLetters = "Error message: " & Err.Description
    end if
case "JMAIL"
	Set Mailer = Server.CreateObject("JMAil.Message")
	Mailer.FromName   = strFromName
	Mailer.From= strFromEmail
	Mailer.Subject    =  strContactFormSubject
	mailer.AddRecipient strToEmail, strToName
	Mailer.HTMLbody = strLetter
	Mailer.Charset      = "UTF-8"
	Mailer.MailServerPassWord=gv_MailServerPassWord
	Mailer.MailServerUserName=gv_MailServerUserName
	response.write "Mail Component used: JMAIL<br/>"
	Mailer.Send(strMailServer)
end select
 
response.write X & " Letter to " & strToName & " - " & strToEmail  & "; from: " & strFromName & " (" & strFromEmail & "); Results: " & SendLetters & "<br/>"
 
%>
 
</body>
 
</html>

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Member_2_3718378
Member_2_3718378

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Praveen DM
Is the persists mail licenced ..or check if its expired...
Avatar of Lev Seltzer

ASKER

That did it. Yes, it took some tinkering to get everything to work, but this component successfully sent the email in UTF-8 format, and the unicode letters were visible in the email program. Thanks for your help.