Oracle学习笔记:利用utl_mail包发送email
utl_mail介绍
utl_mail实用包为oracle10g中新增的用于发送email的工具。使用简单。
utl_mail安装、配置
默认,oracle10g并不会安装该包。可以在sqlplus下通过运行以下脚本安装:
step1: 通过sqlplus运行下面两个脚本文件
{ORACLE_HOME}/RDBMS/Admin/utlmail.sql
{ORACLE_HOME}/RDBMS/Admin/prvtmail.plb
step2: 配置动态初始化参数 smtp_out_server=smtpserver:port[,smtpserver:port,.....]
注意:该smtp服务器必须是普通的方式——发送邮件不需要认证账户信息,不是esmtp!这是很多人遇到的问题。
而且可以配置多个smtp服务器,多么实用的功能。
step3:非常重要的技巧,配置smtp服务器的邮件转发,可以使你的局域网smtp服务器发送internet邮件
step4:记住需要对普通用户赋予可执行utl_mail包的权限
例如:grant execute on utl_mail to public;
utl_mail使用
utl_mail.send(sender => :sender,
recipients => :recipients,
cc => :cc,
bcc => :bcc,
subject => :subject,
message => :message,
mime_type => :mime_type,
priority => :priority);
注意:可以通过设置mime_type来解决中文乱码的问题:mime_type='text/plain;charset=UTF-8'
utl_mail.send_attach_raw
和
utl_mail.send_attach_varchar2(sender => :sender,
recipients => :recipients,
cc => :cc,
bcc => :bcc,
subject => :subject,
message => :message,
mime_type => :mime_type,
priority => :priority,
attachment => :attachment,
att_inline => att_inline,
att_mime_type => :att_mime_type,
att_filename => :att_filename);
用法和utl_mail.send类似的。只是指示 attachment 的内容以附件的形式发送。
可以给这个附件内容指定一个 att_filename,其实必须要给一个文件名,否则在邮件客户端里就和正文消息混在一起了!
注意点:sender、recipients、subject 、[attachment ]是必须字段!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)