Sendet eine E-Mail-Nachricht
xp_sendmail( recipient = Mail_Adresse [, subject = Betreff ] [, cc_recipient = Mail_Adresse ] [, bcc_recipient = Mail_Adresse ] [, query = SQL_Abfrage ] [, "message" = Nachrichten_Hauptteil ] [, attachname = Anhang_Name ] [, attach_result = Anhang_Ergebnis ] [, echo_error = Echo_Fehler ] [, include_file = Dateiname ] [, no_column_header = Nicht_Spalten_Header ] [, no_output = Nicht_Ausgabe ] [, width = Breite ] [, separator = Trennzeichen ] [, dbuser = Benutzername ] [, dbname = DB_Name ] [, type = Typ ] [, include_query = Abfrage_einfügen ] [, content_type = Inhaltstyp ] )
Einige Argumente liefern feste Werte und sind verfügbar, um Transact-SQL-Kompatibilität zu gewährleisten (s.u.).
recipient Dieser LONG VARCHAR-Parameter gibt die Mail-Adresse des Empfängers an. Wenn Sie mehrere Empfänger angeben, müssen die E-Mail-Adressen durch Semikolons voneinander getrennt werden.
subject Dieser LONG VARCHAR-Parameter gibt das Betreff-Feld der Nachricht an. Der Standardwert ist NULL.
cc_recipient Dieser LONG VARCHAR-Parameter gibt die Mail-Adresse des Cc-Empfängers an. Wenn Sie mehrere Cc-Empfänger angeben, müssen die E-Mail-Adressen durch Semikolons voneinander getrennt werden. Der Standardwert ist NULL.
bcc_recipient Dieser LONG VARCHAR-Parameter gibt die Mail-Adresse des Bcc-Empfängers an. Wenn Sie mehrere Bcc-Empfänger angeben, müssen die E-Mail-Adressen durch Semikolons voneinander getrennt werden. Der Standardwert ist NULL.
query Dieser LONG VARCHAR-Parameter ist für die Verwendung mit Transact-SQL bestimmt. Der Standardwert ist NULL.
"message" Dieser LONG VARCHAR-Parameter gibt den Nachrichteninhalt an. Der Standardwert ist NULL. Der Parametername "message" muss in Anführungszeichen gesetzt werden, da "MESSAGE" ein reserviertes Wort ist. Weitere Hinweise finden Sie unter Reservierte Wörter.
attachname Dieser LONG VARCHAR-Parameter ist für die Verwendung mit Transact-SQL bestimmt. Der Standardwert ist NULL.
attach_result Dieser INT-Parameter ist für die Verwendung mit Transact-SQL bestimmt. Standardwert ist "0".
echo_error Dieser INT-Parameter ist für die Verwendung mit Transact-SQL bestimmt. Standardwert ist "1".
include_file Dieser LONG VARCHAR-Parameter gibt die Anhangdatei an. Der Standardwert ist NULL.
no_column_header Dieser INT-Parameter ist für die Verwendung mit Transact-SQL bestimmt. Standardwert ist "0".
no_output Dieser INT-Parameter ist für die Verwendung mit Transact-SQL bestimmt. Standardwert ist "0".
width Dieser INT-Parameter ist für die Verwendung mit Transact-SQL bestimmt. Der Standardwert ist 80.
separator Dieser CHAR(1)-Parameter ist für die Verwendung mit Transact-SQL bestimmt. Standardwert ist CHAR(9).
dbuser Dieser LONG VARCHAR-Parameter ist für die Verwendung mit Transact-SQL bestimmt. Standardwert ist "guest".
dbname Dieser LONG VARCHAR-Parameter ist für die Verwendung mit Transact-SQL bestimmt. Standardwert ist "master".
type Dieser LONG VARCHAR-Parameter ist für die Verwendung mit Transact-SQL bestimmt. Der Standardwert ist NULL.
include_query Dieser INT-Parameter ist für die Verwendung mit Transact-SQL bestimmt. Standardwert ist "0".
content_type Dieser LONG VARCHAR-Parameter gibt den Inhaltstyp des Nachrichtenparameters "message" an (z.B. text/html, ASIS usw.). Der Standardwert ist NULL. Der Wert von content_type wird nicht validiert. Das Setzen eines ungültigen Inhaltstyps bewirkt, dass eine ungültige oder unverständliche E-Mail gesendet wird.
Wenn Sie Header manuell einstellen möchten, können Sie den content_type-Parameter auf ASIS setzen. Wenn Sie dies tun, nimmt die xp_sendmail-Prozedur an, dass die Daten, die an den message-Parameter übergeben wurden, eine korrekt formatierte E-Mail mit Headern ist und fügt daher keine weiteren Header hinzu. Wenn Sie ASIS angeben, müssen Sie alle Header im Nachrichtenparameter manuell einstellen, auch Header, die normalerweise durch die Übergabe von Daten an die anderen Parameter ausgefüllt werden.
DBA-Berechtigung erforderlich
"xp_startmail" muss ausgeführt worden sein, um eine E-Mail-Sitzung unter MAPI starten zu können, und "xp_startsmtp" für eine E-Mail-Sitzung unter SMTP.
Wenn Sie Mail mit MAPI versenden, wird der content_type-Parameter nicht unterstützt.
xp_sendmail ist eine Systemprozedur, die eine E-Mail-Nachricht an angegebene Empfänger sendet, sobald eine Sitzung mit xp_startmail oder xp_startsmtp gestartet wurde. Die Prozedur akzeptiert Nachrichten beliebiger Länge. Die Argumentwerte für xp_sendmail sind Zeichenfolgen. Die Länge der einzelnen Argumente ist durch den Umfang des auf Ihrem System verfügbaren Speichers begrenzt.
Das content_type-Argument ist für Benutzer bestimmt, die mit den Erfordernissen von MIME-E-Mail vertraut sind. xp_sendmail
akzeptiert ASIS als content_type. Wenn content_type auf ASIS gesetzt ist, nimmt xp_sendmail an, dass der Hauptteil der Nachricht
("message") eine korrekt formatierte E-Mail mit Headern ist, und fügt keine zusätzlichen Header hinzu. Geben Sie ASIS an,
um mehrteilige Nachrichten zu senden, die mehr als einen Inhaltstyp enthalten. Weitere Hinweise zu MIME finden Sie unter RFCs
2045-2049 ( http://www.ietf.org/).
Durch den include_file-Parameter angegebene Anhänge werden als MIME-Typ "application/octet-stream" mit base64-Kodierung gesendet und müssen auf dem Datenbankserver vorhanden sein.
Ab SQL Anywhere 10.0.0 sind E-Mails, die mit einem SMTP-E-Mailsystem versendet werden, kodiert, wenn die Betreffzeile Zeichen außerhalb des 7-Bit-ASCII-Bereichs enthält. Außerdem wird eine an ein SMS-fähiges Gerät gesendete E-Mail möglicherweise nicht richtig dekodiert, wenn die Betreffzeile Zeichen außerhalb des 7-Bit-ASCII-Bereichs enthält.
Weitere Hinweise finden Sie unter Rückgabecodes für MAPI- und SMTP-Systemprozeduren.
Der folgende Aufruf sendet eine Nachricht an die Benutzer-ID 'Sales Group', die die Datei prices.doc als Mail-Anhang enthält:
CALL xp_sendmail( recipient='Sales Group', subject='New Pricing', include_file = 'C:\\DOCS\\PRICES.DOC' ); |
Das folgende Beispielprogramm zeigt unterschiedliche Verwendungen der xp_sendmail-Systemprozedur, wie im Beispiel selbst beschrieben:
BEGIN DECLARE to_list LONG VARCHAR; DECLARE email_subject CHAR(256); DECLARE content LONG VARCHAR; DECLARE uid CHAR(20); SET to_list='test_account@mytestdomain.com'; SET email_subject='This is a test'; SET uid='test_sender@mytestdomain.com'; // Call xp_startsmtp to start an SMTP email session CALL xp_startsmtp( uid, 'mymailserver.mytestdomain.com' ); // Basic email example SET content='This text is the body of my email.\n'; CALL xp_sendmail( recipient=to_list, subject=email_subject, "message"=content ); // Send email containing HTML using the content_type parameter, // as well as including an attachment with the include_file // parameter SET content='Plain text.<BR><BR><B>Bold text.</B><BR><BR><a href="www.iAnywhere.com">iAnywhere Home Page</a></B><BR><BR>'; CALL xp_sendmail( recipient=to_list, subject=email_subject, "message"=content, content_type = 'text/html', include_file = 'test.zip' ); // Send email "ASIS". Here the content-type has been specified // by the user as part of email body. Note the attachment can // also be done separately SET content='Content-Type: text/html;\nContent-Disposition: inline; \n\nThis text is not bold<BR><BR><B>This text is bold</B><BR><BR><a href="www.iAnywhere.com">iAnywhere Home Page</a></B><BR><BR>'; CALL xp_sendmail( recipient=to_list, subject=email_subject, "message"=content, content_type = 'ASIS', include_file = 'test.zip' ); // Send email "ASIS" along with an include file. Note that // "message" contains the information for another attachment SET content = 'Content-Type: multipart/mixed; boundary="xxxxx";\n'; SET content = content || 'This part of the email should not be shown. If this is shown then the email client is not MIME compatible\n\n'; SET content = content || '--xxxxx\n'; SET content = content || 'Content-Type: text/html;\n'; SET content = content || 'Content-Disposition: inline;\n\n'; SET content = content || 'This text is not bold<BR><BR><B>This text is bold</B><BR> <BR><a href="www.iAnywhere.com">iAnywhere Home Page</a></B><BR><BR>\n\n'; SET content = content || '--xxxxx\n'; SET content = content || 'Content-Type: application/zip; name="test.zip"\n'; SET content = content || 'Content-Transfer-Encoding: base64\n'; SET content = content || 'Content-Disposition: attachment; filename="test.zip"\n\n'; // Encode the attachment yourself instead of adding this one in // the include_file parameter SET content = content || base64_encode( xp_read_file( 'othertest.zip' ) ) || '\n\n'; SET content = content || '--xxxxx--\n'; CALL xp_sendmail( recipient=to_list, subject=email_subject, "message"=content, content_type = 'ASIS', include_file = 'othertest.zip' ); // End the SMTP session CALL xp_stopsmtp(); END |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |