- 论坛徽章:
- 0
|
小弟,目前用UTL_SMTP包发邮件,但是当邮件的标题超过48个半角字符时,整个邮件就乱码了。
程序如下:(小弟要发的式日文邮件)
smtp := utl_smtp.open_connection(mlsvr, 25);
utl_smtp.helo(smtp, mlsvr);
utl_smtp.mail(smtp, mlfr);
utl_smtp.rcpt(smtp, mlto);
utl_smtp.open_data(smtp);
utl_smtp.write_data(smtp, 'To:' || mlto || chr(13) || chr(10));
utl_smtp.write_data(smtp, 'From:' || mlfr || chr(13) || chr(10));
utl_smtp.write_data(smtp, 'Subject:=?iso-2022-jp?B?');
utl_smtp.write_raw_data(smtp,
utl_encode.base64_encode(
utl_raw.cast_to_raw(mlsub)
));
utl_smtp.write_data(smtp, '?=' || chr(13) || chr(10));
utl_smtp.write_data(smtp, 'MIME-Version: 1.0' || chr(13) || chr(10));
utl_smtp.write_data(smtp, 'Content-Type: text/plain;' || chr(13) || chr(10));
utl_smtp.write_data(smtp, chr(9) || 'charset="iso-2022-jp"' || chr(13) || chr(10));
utl_smtp.write_data(smtp, 'Content-Transfer-Encoding: base64' || chr(13) || chr(10));
utl_smtp.write_data(smtp, chr(13) || chr(10));
utl_smtp.write_raw_data(smtp,
utl_encode.base64_encode(
utl_raw.cast_to_raw(mlmsg)
));
utl_smtp.close_data(smtp);
utl_smtp.quit(smtp); |
|