بتاريخ: 12 أكتوبر 201510 سنة comment_266689 لدي الإجراء يقوم بإرسال إيميل كيف أقوم بتعديل لأرسل لأكثر من شخص في ال CREATE OR REPLACE PROCEDURE sendmailout ( sender IN VARCHAR2, recipient IN VARCHAR2, ccrecipient IN VARCHAR2, subject IN VARCHAR2, message IN VARCHAR2 ) IS crlf VARCHAR2(2):= UTL_TCP.CRLF; connection utl_smtp.connection; mailhost VARCHAR2(30) := 'mail.com'; header VARCHAR2(1000); BEGIN -- -- Start the connection. -- connection := utl_smtp.open_connection(mailhost,25); header:= 'Date: '||TO_CHAR(SYSDATE,'dd Mon yy hh24:mi:ss')||crlf|| 'From: '||sender||''||crlf|| 'Subject: '||subject||crlf|| 'To: '||recipient||crlf|| 'CC: '||ccrecipient||crlf|| message||crlf; -- -- Handshake with the SMTP server -- utl_smtp.helo(connection, mailhost); utl_smtp.mail(connection, sender); utl_smtp.rcpt(connection, recipient); utl_smtp.rcpt(connection, ccrecipient); utl_smtp.open_data(connection); -- -- Write the header -- utl_smtp.write_data(connection, header); -- -- The crlf is required to distinguish that what comes next is not simply part of the header.. -- utl_smtp.write_data(connection, crlf ||message); utl_smtp.close_data(connection); utl_smtp.quit(connection); EXCEPTION WHEN UTL_SMTP.INVALID_OPERATION THEN dbms_output.put_line(' Invalid Operation in SMTP transaction.'); WHEN UTL_SMTP.TRANSIENT_ERROR THEN dbms_output.put_line(' Temporary problems with sending email - try again later.'); WHEN UTL_SMTP.PERMANENT_ERROR THEN dbms_output.put_line(' Errors in code for SMTP transaction.'); END; Receipt تقديم بلاغ
بتاريخ: 12 أكتوبر 201510 سنة كاتب الموضوع comment_266712 أحد يساعدني كيف أرسل إيميل لأكثر من شخص عن طؤيق إستخدام UTL_SMPT تقديم بلاغ
بتاريخ: 17 أكتوبر 201510 سنة comment_266823 السلام عليكم ورحمة الله وبركاته جرب ده CREATE OR REPLACE PROCEDURE send_mail (p_to IN VARCHAR2, p_cc IN VARCHAR2 DEFAULT NULL, p_bcc IN VARCHAR2 DEFAULT NULL, p_from IN VARCHAR2, p_subject IN VARCHAR2, p_message IN VARCHAR2, p_smtp_host IN VARCHAR2, p_smtp_port IN NUMBER DEFAULT 25) AS l_mail_conn UTL_SMTP.connection; PROCEDURE process_recipients(p_mail_conn IN OUT UTL_SMTP.connection, p_list IN VARCHAR2) AS l_tab string_api.t_split_array; BEGIN IF TRIM(p_list) IS NOT NULL THEN l_tab := string_api.split_text(p_list); FOR i IN 1 .. l_tab.COUNT LOOP UTL_SMTP.rcpt(p_mail_conn, TRIM(l_tab(i))); END LOOP; END IF; END; BEGIN l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port); UTL_SMTP.helo(l_mail_conn, p_smtp_host); UTL_SMTP.mail(l_mail_conn, p_from); process_recipients(l_mail_conn, p_to); process_recipients(l_mail_conn, p_cc); process_recipients(l_mail_conn, p_bcc); 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: ' || p_to || UTL_TCP.crlf); IF TRIM(p_cc) IS NOT NULL THEN UTL_SMTP.write_data(l_mail_conn, 'CC: ' || REPLACE(p_cc, ',', ';') || UTL_TCP.crlf); END IF; IF TRIM(p_bcc) IS NOT NULL THEN UTL_SMTP.write_data(l_mail_conn, 'BCC: ' || REPLACE(p_bcc, ',', ';') || UTL_TCP.crlf); END IF; UTL_SMTP.write_data(l_mail_conn, 'From: ' || p_from || UTL_TCP.crlf); UTL_SMTP.write_data(l_mail_conn, 'Subject: ' || p_subject || UTL_TCP.crlf); UTL_SMTP.write_data(l_mail_conn, 'Reply-To: ' || p_from || UTL_TCP.crlf || UTL_TCP.crlf); UTL_SMTP.write_data(l_mail_conn, p_message || UTL_TCP.crlf || UTL_TCP.crlf); UTL_SMTP.close_data(l_mail_conn); UTL_SMTP.quit(l_mail_conn); END; تقديم بلاغ
بتاريخ: 17 أكتوبر 201510 سنة comment_266824 ياريت تجرب وتقولنا النتيجة ايه عشان نقدر نساعدك تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.