參考手冊

DTW_SENDMAIL


AIX HP-UX Linux OS/2 OS/390 OS/400 PTX SUN Win NT
X X X X X X X X X

目的

動態建立與傳輸電子郵件 (e-mail) 訊息。

格式
測試版客戶的注意事項

本特性的施行仍在審查中,當本產品正式發行時可能會改變。

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message, IN Subject, IN CarbonCopy, IN BlindCarbonCopy, IN ReplyTo, IN Organization, IN Attachments)

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message, IN Subject, IN CarbonCopy, IN BlindCarbonCopy, IN ReplyTo, IN Organization)

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message, IN Subject, IN CarbonCopy, IN BlindCarbonCopy, IN ReplyTo)

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message, IN Subject, IN CarbonCopy, IN BlindCarbonCopy)

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message, IN Subject, IN CarbonCopy)

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message, IN Subject)

@DTW_SENDMAIL(IN Sender, IN Recipient, IN Message)

參數

表 46. DTW_SENDMAIL 參數
資料類型 參數 使用 說明
字串 sender IN 指定作者位址的變數或文字字串。這個參數是必要的。 有效的格式為:
  • 姓名 <使用者 @ 領域>
  • <使用者 @ 領域>
  • 使用者 @ 領域
字串 recipient IN 指定收件者的電子郵件位址的 變數或文字字串。藉由逗點 (,) 的分隔,這個值可以包含多重收件者。 這個參數是必要的。 有效的收件者格式為:
  • 姓名 <使用者 @ 領域>
  • <使用者 @ 領域>
  • 使用者 @ 領域
字串 message IN 包含電子郵件訊息本文的變數或文字字串。這個參數是必要的。
字串 subject IN 包含主旨行文字的變數或文字字串。 這是一個可選用的參數。 您必須指定一個空字串 (" ") 才能指定額外的參數。
字串 CarbonCopy IN 包含額外收件者之電子郵件位址、或姓名與電子郵件位址的變數或文字字串。 藉由逗點 (,) 的分隔, 這個值可以包含額外收件者。 請參閱 Recipient 參數以取得有效的收件者格式。 這是一個可選用的參數。 您必須指定一個空字串 (" ") 才能指定額外的參數。
字串 BlindCarbonCopy IN 包含額外收件者之電子郵件位址、或姓名與電子郵件位址的變數或文字字串, 但收件者不會出現在電子郵件表頭。藉由逗點 (,) 的分隔, 這個值可以包含額外收件者。 請參閱 Recipient 參數以取得有效的收件者格式。 這是一個可選用的參數。 您必須指定一個空字串 (" ") 才能指定額外的參數。
字串 ReplyTo IN 包含回覆此訊息要送往寄件者電子郵件的 變數或文字字串。 這是一個可選用的參數。 您必須指定一個空字串 (" ") 才能指定額外的參數。有效的回覆格式為:
  • 姓名 <使用者 @ 領域>
  • <使用者 @ 領域>
  • 使用者 @ 領域
字串 Organization IN 包含寄件者組織名稱的 變數或文字字串。 這是一個可選用的參數。
字串 附件
IN 指定要傳送之檔案相對路徑的變數或文字字串。藉由逗點 (,) 的分隔,使得這個值可以包含多重檔案, 但它不可包含 ".." 字串。您可以在 ATTACHMENT_PATH 架構變數中,以目錄列示的次序對這些檔案進行搜尋。

下列類型內容可以附件方式傳送︰

  • image/jpeg
  • image/gif
  • audio/basic
  • application/octet-stream (general)

回覆碼

表 47. DTW_SENDMAIL 回覆碼
回覆碼 說明
-1001 伺服器無法處理 Net.Data 的配置記憶體要求。
1001 輸入參數包含 NULL 值。
1002 輸入參數包含的字串有空字元結尾。
1003 函數呼叫上傳遞的參數數目不正確。
1005 函數呼叫上傳遞的參數必須是字串變數,但卻是不同的變數類型。
7000 Net.Data 無法連接指定的 SMTP 伺服器。
7001 Net.Data 嘗試將電子郵件訊息轉遞至指定的 SMTP 伺服器時,發生 SMTP 錯誤。
7002 指定的 SMTP 伺服器不支援 ESMTP (Extended Simple Mail Transfer Protocol)。

用法注意事項

  1. 您可以使用可選用的架構變數 DTW_SMTP_SERVER, 指定 SMTP 伺服器來傳輸電子郵件訊息。這個變數的值可以是主電腦名稱或是 IP 位址。 當這個變數沒有被定義, Net.Data 會使用區域主電腦以作為 SMTP 伺服器。 若想進一步了解此變數,請參閱您作業系統的 Net.Data 管理及程式設計指南內的架構這一章。 OS/390 系統不處理 DTW_SMTP_SERVER。
  2. OS/2、Windows NT 及 UNIX 使用者︰標準 SMTP (簡單郵件轉送通信協定) 伺服器只接受 7 位元資料,如美式 ASCII 字元。如果您的訊息有 8 位元字元, 建議您指定 ESMTP 伺服器, ESMTP 伺服器接受 8 位元字元。 Net.Data 不會將 8 位元資料編碼為 7 位元資料。如果您無法存取 ESMTP 伺服器,從電子郵件訊息中除去所有的 8 位元字元。

    Net.Data for OS/390 使用者不必修改電子郵件訊息的 SMTP 伺服器。

  3. 字集支援:
  4. 下列列示說明 Net.Data 不傳送電子郵件訊息的條件:

範例

範例 1:建立並傳送一個簡單電子郵件訊息的函數呼叫

@DTW_SENDMAIL("<ibmuser1@ibm.com>", "<ibmuser2@ibm.com>","在 9:30 有
一個會議。", "狀態會議")

DTW_SENDMAIL 函數傳送電子郵件訊息時包含下列資訊:

日期:Mon, 3 Apr 1998 09:54:33 PST
收件者:<ibmuser2@ibm.com>
寄件者:<ibmuser1@ibm.com>
主旨:狀態會議
在 9:30 有一個會議。
 

日期的資訊是使用系統日期和時間函數建構而成, 並以 SMTP 特定資料格式呈現。

範例 2:建立並傳送多重收件者、 副本與密件副本收件者與公司名稱的電子郵件訊息的函數呼叫

@DTW_SENDMAIL("IBM User 1 <ibmuser1@ibm.com>", "IBM 使用者 2 <ibmuser2@ibm.com>,
IBM 使用者 3 <ibmuser3@ibm.com>, IBM 使用者 4 <ibmuser4@ibm.com>", "在 9:30 有
一個會議 9:30。", "狀態會議", "IBM 使用者 5 <ibmuser5@ibm.com>",
"IBM 使用者 6 <ibmuser6@ibm.com", "meeting@ibm.com", "IBM")

DTW_SENDMAIL 函數傳送電子郵件訊息時包含下列資訊:

日期:Mon, 3 Apr 1998 09:54:33 PST
收件者:IBM 使用者 2 <ibmuser2@ibm.com>, IBM 使用者 3 <ibmuser3@ibm.com>, IBM 使用者 4 <ibmuser4@ibm.com>
副本:IBM 使用者 5 <ibmuser5@ibm.com>
密件副本:IBM User 6 <ibmuser6@ibm.com>
收件者:IBM 使用者 1 <ibmuser1@ibm.com>
回覆:meeting@ibm.com
組織:IBM
主旨:狀態會議
在 9:30 有一個會議。

範例 3:經由 Web 套表介面建立並傳送電子郵件的巨集

  %HTML(start) {
  <html>
  <body>
  <h1>Net.Data 電子郵件範例</h1>
  <形成方法="post" action="sendemail">
  <p>收件者:<br /><input name="recipient" /></p>
  <p>主旨︰<br /><input name="subject" /></p>
  <p>訊息︰<br /><textarea name=message rows=20 cols=40>
  </textarea></p>
  <p><input type="submit" value="Send E-mail"></p>
</form>
  </body>
  </html>
  %}
  %HTML(sendemail) {
  <html>
  <body>
  <h1>Net.Data 電子郵件範例</h1>
  @DTW_SENDMAIL("Net.Data E-mail Service <netdata@us.ibm.com>", 接受者, 訊息, 主旨)
  <p>已輸出電子郵件傳送出去。</p>
  </body>
  </html>
  %}

這個巨集是經由 Web 套表介面傳送電子郵件。HTML 的啟動區段中顯示一個套表, 收件者的電子郵件位址、主旨與訊息都可以鍵入。 當使用者按一下傳送電子郵件按鈕, 訊息就被傳送到 HTML(sendemail) 區段中指定的收件者。 這個區段呼叫 DTW_SENDMAIL, 並使用從 Web 套表中獲得的參數來決定電子郵件訊息的內容、 與寄件者與收件者。 一旦電子郵件訊息傳送出去, 便會顯示確認通知。

範例 4:使用 SQL 查詢來決定收件者列示的巨集

%Function(DTW_SQL) mailing_list(IN message) {
  SELECT EMAIL_ADDRESS FROM CUSTOMERS WHERE ZIPCODE='CA'
%REPORT {
      將產品資訊傳送給位於加州的客戶...<p>
  %ROW {
        @DTW_SENDMAIL("John Doe Corp. <john.doe@doe.com>", V1, 訊息,
                      "新版次產品")
        電子郵件已傳送給客戶 $(V1)。<br />
      %}
    %}
  %}

經由客戶資料庫的 SQL 查詢結果所決定, 這個巨集會自動傳送電子郵件訊息到指定的 客戶群組。SQL 查詢也取回客戶的電子郵件位址。 電子郵件內容是由 message 值所決定,而且可以是 靜態或動態的 (例如您可以使用另一個 SQL 查詢來動態 指定產品的版本號碼,或各種報價的價格)。


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]