Oracles UTL_SMTPを使用してメールを送信しようとしています。それは動作しますが、私は奇妙な動作を取得し、私は理由を知らない。下のコードを使用してメールを送信すると、HTMLコードがすべてのタグとともに印刷されます。また、送信者やコンテンツの種類などのヘッダー情報も印刷されます。私は今このコードを数時間見てきましたが、問題の内容を把握することができませんでした。Oracle PL/SQL send HTMLメールが期待どおりに動作しない
助けてください!
l_mail_conn UTL_SMTP.connection;
l_mail_conn := UTL_SMTP.open_connection('myhost', '25');
UTL_SMTP.helo(l_mail_conn, 'myhost');
UTL_SMTP.mail(l_mail_conn, '[email protected]');
UTL_SMTP.rcpt(l_mail_conn, '[email protected]');
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: [email protected]' || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'From: [email protected]'|| UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'Subject: test' || UTL_TCP.crlf);
UTL_SMTP.write_data(l_mail_conn, 'Reply-To: [email protected]' || UTL_TCP.crlf || 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, '<html>
<head>
<title>Test HTML message</title>
</head>
<body>
<p>This is a <b>HTML</b> <i>version</i> of the test message.</p>
<p><img src="http://oracle-base.com/images/site_logo.gif" alt="Site Logo" />
</body>
</html>');
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);
UTL_SMTP.close_data(l_mail_conn);
UTL_SMTP.quit(l_mail_conn);
そして、これは私がこのコードを使用してメールを送信するときに、私が得る電子メールである:あなたが行だけのカップルが欠落している
Content-Type: text/html; charset="iso-8859-1"
<html>
<head>
<title>Test HTML message</title>
</head>
<body>
<p>This is a <b>HTML</b> <i>version</i> of the test message.</p>
<p><img src="http://oracle-base.com/images/site_logo.gif" alt="Site Logo" />
</body>
</html>
マルチパートメッセージを作成する必要があります。 https://oracle-base.com/articles/misc/email-from-oracle-plsql(または、お気に入りの検索エンジンでUTL_SMTP htmlを検索する)を参照してください。 – StephaneM
はい、私が使っていた文書ですが、私がやっているようです何か問題でも。あなたはそれが何かを見ることができますか? –
代わりにUTL_MAILを使用できますか?はるかに簡単です。 –