使用java将SMTP电子邮件发送到通讯组列表

时间:2015-08-20 21:49:21

标签: java email smtp mail-server

我有以下java代码来创建与SMTP服务器的连接以发送电子邮件。如果“distList@mydomain.com”是单个接收器,它可以工作。但是,如果它是一个分发列表,就像我希望的那样,它就不会。

public static void main(String[] args){
    SendEmail send = new SendEmail();
    send.sendEmail();
}

private void sendEmail(){
    try {
      smtpSocket = new Socket(host, port);
      os = new DataOutputStream(smtpSocket.getOutputStream());
      is = new DataInputStream(smtpSocket.getInputStream());

      if(smtpSocket != null && os != null && is != null)
      { 
          try                        
          {   os.writeBytes("HELO\r\n");
              os.writeBytes("MAIL From: <mySender@mydomain.com>\r\n");
              os.writeBytes("RCPT To: <distList@mydomain.com>\r\n");

              os.writeBytes("DATA\r\n");                            
              os.writeBytes("X-Mailer: Via Java\r\n");
              os.writeBytes("DATE: " + dFormat.format(dDate) + "\r\n");
              os.writeBytes("From: Me <mySender@mydomain.com>\r\n");
              os.writeBytes("To:  You <distList@mydomain.com>\r\n");

              String sMessage = "This is the body of the message.";

              os.writeBytes("Subject: Your subjectline here\r\n\r\n");
              os.writeBytes(sMessage + "\r\n");
              os.writeBytes("\r\n.\r\n");
              os.writeBytes("QUIT\r\n");


              String responseline;
              while((responseline = is.readLine())!=null)
              {   
                  System.out.println(responseline);
                  if(responseline.indexOf("Ok") != -1)
                      break;
              }
          }
          catch(Exception e)
          {  System.out.println("Cannot send email as an error occurred.");  }
      }
    }
    catch(Exception e)
    { System.out.println("Host " + m_sHostName + " unknown"); }
}

}

无论是单个收件人还是所需的分发列表,服务器的响应都是相同的:

220 主机 Microsoft ESMTP MAIL服务已准备就绪 currentTimestamp

250 主持人您好[ myIP ]

250 2.1.0发件人确定

250 2.1.5收件人确定

354请开始输入邮件。

250邮件排队等待发送。

221关闭连接。再见。

有谁知道为什么我可以成功发送给一个人,而不是分发名单?

0 个答案:

没有答案