Hi folks,
I use a below piece of code to send an emails from database. It works fine, except we are losing a special characters - in Latin alphabet, resp. in czech language. Any idea why?
declare
c_smtp_host varchar2(500) := 'mail.smtpserver.cz';
c_smtp_port number := 25;
p_to VARCHAR2(100) := 'testemail@gmail.com';
p_from VARCHAR2(100) := 'trusted@email.cz';
p_subject VARCHAR2(100) := 'Email test - ěščřž';
p_text_msg clob := 'Email test - ěščřž';
p_html_msg clob := '<html>Email test - ěščřž<br>Here are some special characters: éíáýžřčšěů</html>';
l_mail_conn UTL_SMTP.connection;
l_boundary VARCHAR2(50) := '----=*#abc1234321cba#*=';
BEGIN
l_mail_conn := UTL_SMTP.open_connection(c_smtp_host, c_smtp_port);
UTL_SMTP.helo(l_mail_conn, c_smtp_host);
UTL_SMTP.mail(l_mail_conn, p_from);
UTL_SMTP.rcpt(l_mail_conn, p_to);
UTL_SMTP.open_data(l_mail_conn);
UTL_SMTP.write_data(l_mail_conn, 'Date: ' ||TO_CHAR(SYSDATE, 'DD-MON-YYYY HH24:MI:SS')||UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'To: ' || p_to || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'From: ' || p_from || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'Subject: ' || p_subject || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'Reply-To: ' || p_from || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'MIME-Version: 1.0' || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'Content-Type: multipart/alternative; boundary="'||l_boundary || '"' || UTL_TCP.crlf || UTL_TCP.crlf);
IF p_html_msg IS NOT NULL THEN
UTL_SMTP.write_data(l_mail_conn, '--' || l_boundary || UTL_TCP.crlf);
/*
UTL_SMTP.write_data(l_mail_conn,
'Content-Type: text/html; charset="iso-8859-1"' ||
UTL_TCP.crlf || UTL_TCP.crlf);
*/
UTL_SMTP.write_data(l_mail_conn,
'Content-Type: text/html; charset="UTF-8"' ||
UTL_TCP.crlf || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, p_html_msg);
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);
END IF;
UTL_SMTP.write_data(l_mail_conn,'--' || l_boundary || '--' || UTL_TCP.crlf);
UTL_SMTP.close_data(l_mail_conn);
UTL_SMTP.quit(l_mail_conn);
END;
A received email look like:
Email test - escrz
Here are some special characters: eiayzrcseu
Instead of:
Email test - ěščřž
Here are some special characters: éíáýžřčšěů
Thanks,
Tomas