使用JCL实用程序TCPSMTP发送正文和附件

时间:2014-08-26 12:07:44

标签: email smtp mainframe jcl

要求:使用TCPSMTP实用程序发送长度为100的VB文件作为附件,并在正文中使用正确的消息而不使用IEBGENER实用程序。

我正在尝试将电子邮件附件文件VB数据集作为附件发送。它在附件或附件文件中处理消息。但两者同时不起作用。 我的JCL是:

    //IRTCPN15 EXEC  PROC=TCPSMTP                               
    //SMTPIN   DD  DSN=EMAIL.CODE,                       
    //             DISP=SHR                                      
    //         DD  DSN=FILE.TOBE.SENTAS.ATTACH.MENT,DISP=SHR

这里,我使用了相同规格VB 100记录长度的数据集EMAIL.CODE和FILE.TOBE.SENTAS.ATTACH.MENT。我也尝试过使用边界分离器,但它仍然不能同时工作。

数据集EMAIL.CODE包含:

    HELO *******                                                            
    MAIL FROM:<*******>                                                  
    RCPT TO: <********>;                                                                                
    DATA                                                                      
    FROM:    <******>                                               
    TO:      <*******>;                                                                              
    SUBJECT: subject data 
    MIME-VERSION: 1.0                                                         
    CONTENT-TYPE: TEXT/PLAIN                                                   
        ---Mail Body---                        
    CONTENT DISPOSITION: ATTACHMENT; FILENAME=FILE.TXT

请建议我如何将此附件与身体一起发送。出于安全原因,我使用过星号。请随时询问是否需要更多信息。

1 个答案:

答案 0 :(得分:1)

在EMAIL.CODE数据集中,您指定邮件的内容类型为text/plain。但是,text/plain本身(无论如何都是默认内容类型)总是以内联方式显示。

为了将邮件中的文本视为附件,您需要一个指定Content-Disposition的{​​{1}}标头。

我可以在您的问题中看到您有attachment行,但它被标记为邮件正文的一部分。除了它需要是一个标题,而不是身体的一部分,它还需要连字符。因此,您应该CONTENT DISPOSITION,而不是CONTENT-DISPOSITION

然而,所有这一切都会让你得到一条消息,其中只包含附件,而你的问题则指明你既需要消息体又需要附件。为此,您的最高级CONTENT DISPOSITION需要为Content-type,并且邮件正文需要包含两个MIME部分,其中一部分指定为multipart/mixed,并且另一个text/plain,但text/plain

此示例显示包含text / plain正文和text / plain附件的MIME消息的数据。

Content-Disposition: attachment