Sql 如何解决发送邮件:ORA-29279 SMTP问题
我在运行下面的截图时遇到ORA-29279错误。建议我,如果在这个问题上Sql 如何解决发送邮件:ORA-29279 SMTP问题,sql,database,oracle,smtp,Sql,Database,Oracle,Smtp,我在运行下面的截图时遇到ORA-29279错误。建议我,如果在这个问题上 CREATE OR REPLACE PROCEDURE CPO.fsc_temp_MAIL (l_from IN VARCHAR2, l_to IN VARCHAR2, Subject IN VARCHAR2, Mesg IN VARCHAR2, Cc IN VARCHAR
CREATE OR REPLACE PROCEDURE CPO.fsc_temp_MAIL (l_from IN VARCHAR2,
l_to IN VARCHAR2,
Subject IN VARCHAR2,
Mesg IN VARCHAR2,
Cc IN VARCHAR2 default null,
P_Html BOOLEAN := FALSE) IS
l_to1 VARCHAR2(32000) := l_to;
Mhost VARCHAR2(64) := '192.168.0.6';
crlf varchar2(2) := CHR(13) || CHR(10);
conn UTL_SMTP.connection;
Address varchar2(32700);
BEGIN
conn := UTL_SMTP.open_connection(Mhost,25);
UTL_SMTP.helo(conn, Mhost);
UTL_SMTP.mail(conn, l_from);
GET_TEMP_INFO_MAIL(conn,l_to1);
If Cc is not null then
GET_TEMP_INFO_MAIL(conn,Cc);
end if;
IF P_Html THEN
Address := 'Date: ' || TO_CHAR(SYSDATE, 'DD MON RRRR HH24:MI:SS') ||
crlf ||'From: ' || l_from ||
crlf ||'To: ' || l_to ||
crlf ||'Cc: ' || Cc ||
crlf ||'Subject: ' || Subject || crlf
|| 'Content-Type: text/html; charset=us-ascii' || crlf
|| 'Content-Transfer-Encoding: 7bit' || crlf
|| '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' || crlf
|| '<html>' || crlf
|| '<head>' || crlf
|| '<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">' || crlf
|| '<title>' || subject || '</title>' || crlf
|| '</head>' || crlf
|| '<body>' || crlf|| utl_tcp.crlf
|| mesg || crlf
|| '</body></html>';
ELSE
Address := 'Date: ' || TO_CHAR(SYSDATE, 'DD MON RRRR HH24:MI:SS') ||
crlf ||'From: ' || l_from ||
crlf ||'To: ' || l_to ||
crlf ||'Cc: ' || Cc ||
crlf ||'Subject: ' || Subject ||
crlf || utl_tcp.crlf || mesg;
END IF;
UTL_SMTP.data(conn, Address);
UTL_SMTP.quit(conn);
EXCEPTION
WHEN utl_smtp.Transient_Error OR utl_smtp.Permanent_Error then
raise_application_error(-20000, 'Unable to send mail: '||sqlerrm);
END;
ORA-29279:SMTP永久错误:530 5.7.1客户端未通过身份验证
我不知道该怎么处理
这是某种smtp设置所有电子邮件地址均有效
如果有人有更好的解决方案,请告诉我我在plsql中创建了这些程序。SMTP服务器的结果代码:530 5.7.1客户端未通过身份验证,它告诉您需要使用服务器进行身份验证。具体而言,结果代码530表示您“必须发出STARTTLS命令。请求的身份验证机制需要加密”
STARTTLS
命令还要求您使用扩展形式的调用OPEN\u CONNECTION
传入Oracle钱包的详细信息,以便在保护连接时使用。您可能还需要调用AUTH
函数或过程来完全验证您的连接
请查看文档以了解更多信息。检查您的主机。这就是主机问题。 使用查询
从dual中选择UTL\u INADDR.get\u host\u name、UTL\u INADDR.get\u host\u address('your-server-address') Is与您发送到的电子邮件地址无关。您的SMTP服务器需要身份验证。阅读“执行测试”电子邮件('usmanafb@ctm.com.pk','mshakeel@ctm.com.pk','mshakeel@ctm.com.pk’、‘测试主题’、‘测试消息’、‘消息状态’)您能告诉我消息状态是什么以及我传递给消息状态的值吗?这与消息状态无关。您的电子邮件服务器正在请求用户名/密码,以便客户端登录。您的示例代码没有提供这一点,这就是为什么会出现错误。请阅读我发布的文档链接。我阅读了您提供的链接,我谈论的是该链接中的过程。我使用了oracle 11 g数据库,我认为它与我的代码不兼容,对吗?oracle 11g中添加了对SSL/TLS安全连接的支持,或者至少在
execute fsc_temp_MAIL('usmanafb@ctm.com.pk','abc@ctm.com.pk','test for subject ','sdf','xyz@ctm.com.pk',True);