2017-07-05 2 views
0

I m curruntly migrating oracle schema to postgresql 9.5 . I m mit Ora2pg und es für mich eine Funktion konvertiert, die für das Senden von E-Mails zu PGPLSQL verantwortlich ist. Mein Code:UTL_SMTP in Postgresql

CREATE OR REPLACE FUNCTION Control_Reports_Pg.send_error_mail (P_Str text, 
P_Function_Name text) RETURNS VOID AS $body$ 
DECLARE 


V_Mail_Sender      varchar(100) :=  
'<[email protected]>'; 
V_Mail_Recipients     varchar(100) := 
'<[email protected]>'; 
V_Mail_Subject      varchar(250):='Error in 
'||C_Package_Name||'.'||P_Function_Name; 
V_Conn        UTL_SMTP.CONNECTION; 
BEGIN 

V_Conn := Sa_Mail_Api_Pg.Begin_Mail(
      Sender  => V_Mail_Sender, 
      Recipients => V_Mail_Recipients, 
      Subject=>V_Mail_Subject, 
      Mime_Type => 'text/html; charset=windows-1255'); 

Sa_Mail_Api_Pg.Write_Mb_Text(
Conn => V_Conn, 
Message => P_Str); 

Sa_Mail_Api_Pg.End_Mail(Conn => V_Conn); 

PERFORM 
UTL_FILE.PUT_LINE(current_setting('Control_Reports_Pg.G_Log_File_Type'); 
END; 
    $body$ 
    LANGUAGE PLPGSQL 
    SECURITY DEFINER 
    ; 

Aber ich erhalte die nächsten Fehler:

ERROR: schema "utl_smtp" does not exist 
LINE 28:  V_Conn        UTL_SMTP.CONNECTION; 

Gibt es ein UTL_SMTP Paket/Schema, das ich importieren? Welche Änderungen muss ich vornehmen, um Mail über postgresql zu senden?

+0

[pgsmtp] (https://pgxn.org/dist/pgsmtp/) zum Beispiel E-Mails von postgresql zu senden. PostgreSQL ist ein DBMS, kein E-Mail-Client, aber es kann unbegrenzt mit verschiedenen [Verfahrenssprachen] (https://www.postgresql.org/docs/current/static/xplang.html) erweitert werden. Aber lesen Sie [this] (https://stackoverflow.com/a/12003516/593144), bevor Sie beginnen. – Abelisto

Antwort