通过大型机上的SMTP发送没有正文内容的电子邮件

时间:2012-11-06 02:58:48

标签: email smtp mainframe jcl

SMTP MIME消息一直运行良好,直到几周。电子邮件的所有突然的正文内容都是空白的,并且没有显示任何数据,电子邮件正在发送但电子邮件中没有正文内容,但主题行是适用的。有人可以告诉我它是否与内部相关SMTP实用程序已弃用支持问题或某些内容。感谢您的回复。

技术详情如下:效用 IEBGENER 用于将电子邮件数据复制到SMTP MIME服务器。这是使用的JCL:

//SENDEMAIL EXEC PGM=IEBGENER                            
//SYSIN    DD DUMMY                                      
//SYSUT1   DD DSN=EMAIL.INPUT.DS,DISP=SHR
//SYSUT2   DD SYSOUT=(B,SMTP)                            
//SYSOUT   DD SYSOUT=*                                  
//SYSPRINT DD SYSOUT=* 
// 

EMAIL.INPUT.DS包含

HELO IEFSSxx                                            
MAIL FROM:<MYTEST@TESTING.COM>                    
RCPT TO:<YOURTEST@TESTING.COM>                      
DATA                                                    
FROM:     MYTEST@TESTING.COM 
TO:       YOURTEST@TESTING.COM 
SUBJECT:  TEST MESSAGE FROM MVS USING SMTP              
MIME-VERSION: 1.0 
CONTENT-TYPE: TEXT/HTML;BOUNDARY="SIMPLE BOUNDARY"
--SIMPLE BOUNDARY
THIS IS A LINE IN THE BODY OF THE NOTE.                  
--SIMPLE BOUNDARY
.
QUIT

1 个答案:

答案 0 :(得分:4)

我怀疑您的SMTP服务已升级 并且可能对设置消息时的错误更加敏感 - 您的示例有一些......

boundary参数的Content-type子参数与多部分消息有关(它是消息部分之间的边界定界符)。您的邮件Content-type不是multipart所以我想是这样 boundary子参数的“支持”可能已被删除,从而产生不可预测的结果。

您可能会发现审核描述的RFC 2045RFC 2046很有用 MIME格式。 boundary子参数的规则在RFC2046中的多部分消息下定义。

在多部分消息中正确使用边界定界符通常需要这样做 边界定界符后跟一个空行。另外,最后一个边界定界符, 终止消息最后一部分的那个应该附加两个连字符。

考虑到所有这些因素,符合标准的信息看起来更像是:

HELO IEFSSxx                                            
MAIL FROM:<MYTEST@TESTING.COM>                    
RCPT TO:<YOURTEST@TESTING.COM>                      
DATA                                                    
FROM:     MYTEST@TESTING.COM 
TO:       YOURTEST@TESTING.COM 
SUBJECT:  TEST MESSAGE FROM MVS USING SMTP 
MIME-Version: 1.0
Content-type: multipart/mixed; boundary="SIMPLE BOUNDARY"

--SIMPLE BOUNDARY

Please open the attachment, to solve your problems...
--SIMPLE BOUNDARY
Content-type: text/html

Try asking <a href="http://www.stackoverflow.com">Stackoverflow</a>
--SIMPLE BOUNDARY--
.
QUIT

请注意,上述示例中的空行是重要的,并且最后boundary分隔符有两个尾随超时。