Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Systemobjekte » Systemprozeduren » Alphabetische Liste der Systemprozeduren

 

xp_sendmail-Systemprozedur

Sendet eine E-Mail-Nachricht

Syntax
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 ]
)
Argumente

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.

Berechtigungen

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.

Bemerkungen

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 ([external link] 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.

Rückgabecodes

Weitere Hinweise finden Sie unter Rückgabecodes für MAPI- und SMTP-Systemprozeduren.

Siehe auch
Beispiel

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