用utl_smtp发邮件,给自己发邮件有正文内容,给别人发,没有正文内容
时间: 2024-02-24 09:58:57 浏览: 132
您好,关于您提到的使用 UTL_SMTP 发邮件,给自己发邮件有正文内容,给别人发邮件没有正文内容的问题,我猜测是您在发送邮件时没有添加邮件正文内容,或者您添加的邮件正文内容格式不正确导致的。
在使用 UTL_SMTP 发送邮件时,需要调用 UTL_SMTP.WRITE_DATA 函数将邮件正文内容写入到邮件中。正文内容的格式需要按照邮件的格式要求进行指定,通常是使用 HTML 格式或纯文本格式。
以下是一个使用 UTL_SMTP 发送 HTML 格式邮件的示例代码:
```
DECLARE
l_mail_conn UTL_SMTP.connection;
l_mail_host VARCHAR2(255) := 'smtp.example.com';
l_mail_port PLS_INTEGER := 25;
l_mail_user VARCHAR2(255) := 'user@example.com';
l_mail_pass VARCHAR2(255) := 'password';
l_mail_to VARCHAR2(255) := 'recipient@example.com';
l_mail_subject VARCHAR2(255) := 'Test Email';
l_mail_body VARCHAR2(32767) := '<html><body><h1>This is a test email!</h1></body></html>';
BEGIN
l_mail_conn := utl_smtp.open_connection(l_mail_host, l_mail_port);
utl_smtp.helo(l_mail_conn, l_mail_host);
utl_smtp.mail(l_mail_conn, l_mail_user);
utl_smtp.rcpt(l_mail_conn, l_mail_to);
utl_smtp.data(l_mail_conn, 'Subject:' || l_mail_subject || utl_tcp.crlf);
utl_smtp.data(l_mail_conn, 'From: ' || l_mail_user || utl_tcp.crlf);
utl_smtp.data(l_mail_conn, 'To: ' || l_mail_to || utl_tcp.crlf);
utl_smtp.data(l_mail_conn, 'Content-Type: text/html; charset=UTF-8' || utl_tcp.crlf);
utl_smtp.data(l_mail_conn, utl_tcp.crlf);
utl_smtp.write_data(l_mail_conn, l_mail_body);
utl_smtp.quit(l_mail_conn);
END;
```
请注意,这只是一个示例代码,并且需要根据您的实际情况进行调整。希望能对您有所帮助。
阅读全文