mh.patch
上传用户:xu_441
上传日期:2007-01-04
资源大小:1640k
文件大小:5k
源码类别:

Email客户端

开发平台:

Unix_Linux

  1. Message-Id: <199309031900.OAA19417@ignatz.acs.depaul.edu>
  2. To: bug-mh@ics.uci.edu
  3. cc: mh-users@ics.uci.edu, eric@cs.berkeley.edu
  4. Subject: MH-6.8.1/Sendmail 8.X (MH patch) updated
  5. Date: Fri, 03 Sep 1993 14:00:46 -0500
  6. From: Dave Nelson <dcn@ignatz.acs.depaul.edu>
  7. This patch will fix the "X-auth..." warnings from the newer
  8. Sendmails (8.X) while continuing to work with the old sendmails.
  9. I think the following patch will make everyone happy.
  10. 1)  Anybody with MH-6.8.1 can install this.  It doesn't matter
  11.     what version of sendmail you're running.  It doesn't matter
  12.     if you're not running sendmail (but it won't fix anything
  13.     for you).
  14. 2)  No configuration file hacks. If the -client switch is
  15.     absent (the default), the new sendmails will get an EHLO 
  16.     using what LocalName() returns as the hostname.  On my systems, 
  17.     this returns the FQDN.  If the EHLO fails with a result between 
  18.     500 and 599  and the -client switch is not set, we give up on 
  19.     sending EHLO/HELO and just go deliver the mail.
  20. 3)  No new configuration options.
  21. 4)  Retains the undocumented -client switch.  One warning:  it
  22.     is possible using the -client switch to cause the old sendmails
  23.     to return "I refuse to talk to myself".  You could do this under
  24.     the old code as well.  This will happen if you claim to be the
  25.     same system as the sendmail you're sending to is running on.  
  26.     That's pointless, but possible.  If you do this, just like under
  27.     the old code, you will get an error.
  28. 5)  If you're running a site with both old and new sendmails, you only
  29.     have to build MH once.  The code's the same; works with them
  30.     both.
  31. If you decide to install this, make sure that you look the patch
  32. over and that you agree with what it is doing.  It works for me, but I
  33. can't test it on every possible combination.  Make sure that it works
  34. before you really install it for your users, if any.  No promises.
  35. To install this, save this to a file in the mts/sendmail directory.
  36. Feed it to patch.  Patch will ignore the non-patch stuff.  You should have
  37. "mts sendmail/smtp" in your configuration file.  This works with old and
  38. new sendmails.  Using "mts sendmail"  will cause the new sendmails to
  39. print an "X-auth..." warning about who owns the process piping the mail 
  40. message.  I don't know of anyway of getting rid of these.
  41. mh-config (if necessary), make, make inst-all.
  42. I hope this helps people.
  43. /dcn
  44. Dave Nelson
  45. Academic Computer Services
  46. DePaul University, Chicago
  47. *** smail.c Fri Sep  3 11:58:05 1993
  48. --- smail.c Fri Sep  3 11:57:27 1993
  49. ***************
  50. *** 239,261 ****
  51.        return RP_RPLY;
  52.        }
  53.   
  54. !      if (client && *client) {
  55. !  doingEHLO = 1;
  56. !  result = smtalk (SM_HELO, "EHLO %s", client);
  57. !  doingEHLO = 0;
  58.   
  59. !  if (500 <= result && result <= 599)
  60.        result = smtalk (SM_HELO, "HELO %s", client);
  61. !  switch (result) {
  62.        case 250:
  63. !          break;
  64.   
  65.        default:
  66.    (void) sm_end (NOTOK);
  67.    return RP_RPLY;
  68.    }
  69.        }
  70.   
  71.   #ifndef ZMAILER
  72.        if (onex)
  73. --- 239,276 ----
  74.        return RP_RPLY;
  75.        }
  76.   
  77. !      doingEHLO = 1;
  78. !      result = smtalk (SM_HELO, "EHLO %s", 
  79. !       (client && *client) ? client : LocalName());
  80. !      doingEHLO = 0;
  81. !      switch (result)
  82. !      {
  83. !      case 250:
  84. !  break;
  85.   
  86. !      default:
  87. !  if (!(500 <= result && result <= 599))
  88. !  {
  89. !      (void) sm_end (NOTOK);
  90. !      return RP_RPLY;
  91. !  }
  92. !  if (client && *client)
  93. !  {
  94.        result = smtalk (SM_HELO, "HELO %s", client);
  95. !      switch (result)
  96. !      {
  97.        case 250:
  98. !  break;
  99.   
  100.        default:
  101.    (void) sm_end (NOTOK);
  102.    return RP_RPLY;
  103. +      }
  104.    }
  105.        }
  106. +      
  107.   
  108.   #ifndef ZMAILER
  109.        if (onex)
  110. ***************
  111. *** 357,380 ****
  112.        return RP_RPLY;
  113.       }
  114.   
  115. !     if (client && *client) {
  116. !  doingEHLO = 1;
  117. !  result = smtalk (SM_HELO, "EHLO %s", client);
  118. !  doingEHLO = 0;
  119.   
  120. !  if (500 <= result && result <= 599)
  121.        result = smtalk (SM_HELO, "HELO %s", client);
  122. !  switch (result) {
  123. !      case 250: 
  124.    break;
  125.   
  126. !      default: 
  127.    (void) sm_end (NOTOK);
  128.    return RP_RPLY;
  129.    }
  130.       }
  131.   send_options: ;
  132.       if (watch && EHLOset ("XVRB"))
  133.    (void) smtalk (SM_HELO, "VERB on");
  134. --- 372,409 ----
  135.        return RP_RPLY;
  136.       }
  137.   
  138. !     doingEHLO = 1;
  139. !     result = smtalk (SM_HELO, "EHLO %s", 
  140. !       (client && *client) ? client : LocalName());
  141. !     doingEHLO = 0;
  142. !     switch (result)
  143. !     {
  144. !     case 250:
  145. !  break;
  146. !     default:
  147. !  if (!(500 <= result && result <= 599))
  148. !  {
  149. !      (void) sm_end (NOTOK);
  150. !      return RP_RPLY;
  151. !  }
  152.   
  153. !  if (client && *client)
  154. !  {
  155.        result = smtalk (SM_HELO, "HELO %s", client);
  156. !      switch (result)
  157. !      {
  158. !      case 250:
  159.    break;
  160.   
  161. !      default:
  162.    (void) sm_end (NOTOK);
  163.    return RP_RPLY;
  164. +      }
  165.    }
  166.       }
  167. !     
  168.   send_options: ;
  169.       if (watch && EHLOset ("XVRB"))
  170.    (void) smtalk (SM_HELO, "VERB on");