<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Блог сисадмина &#187; ssmtp</title>
	<atom:link href="http://avz.org.ua/wp/tag/ssmtp/feed/" rel="self" type="application/rss+xml" />
	<link>http://avz.org.ua/wp</link>
	<description>Заметки о Linux и прочие полезные howto</description>
	<lastBuildDate>Thu, 02 Sep 2010 17:53:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Включение в лог sSMTP даты и времени отправки письма</title>
		<link>http://avz.org.ua/wp/2009/03/15/ssmtp-log-patch/</link>
		<comments>http://avz.org.ua/wp/2009/03/15/ssmtp-log-patch/#comments</comments>
		<pubDate>Sat, 14 Mar 2009 22:21:19 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[ssmtp]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=94</guid>
		<description><![CDATA[Патч, который добавляет в лог запись даты и врмени отправки письма. Чтобы запись в лог работала, sSMTP должен быть сконфигурен с ключом --enable-logfile. Я также добавляю еще и ключ --enable-ssl, чтобы в логе не было ругани Unable to set UseTLS=&#187;NO&#187; Unable to set UseTLSCert=&#187;NO&#187; Тестировалось на sSMTP 2.62, размер файла ssmtp.c 42980 байт. Чтобы пропатчить, [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/07/04/bash-history-timestamp/' rel='bookmark' title='Permanent Link: История команд в bash с указанием даты и времени'>История команд в bash с указанием даты и времени</a> <small>Читая в очередной раз man по bash-у, наткнулся на интересную переменную оболочки, цитирую: HISTTIMEFORMAT If this variable is set and...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Патч, который добавляет в лог запись даты и врмени отправки письма.<br />
Чтобы запись в лог работала, sSMTP должен быть сконфигурен с ключом --enable-logfile.<br />
Я также добавляю еще и ключ --enable-ssl, чтобы в логе не было ругани </p>
<p>Unable to set UseTLS=&raquo;NO&raquo;<br />
Unable to set UseTLSCert=&raquo;NO&raquo;</p>
<p>Тестировалось на sSMTP 2.62, размер файла ssmtp.c 42980 байт.<br />
Чтобы пропатчить, используем в директории, где лежит ssmtp.c, команду </p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">patch</span> -p0 <span class="sy0">&lt;</span> ssmtp.<span class="kw2">patch</span></div>
</li>
</ol>
</div>
<p>Содержимое файла ssmtp.patch:</p>
<div class="geshi no c">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&#8212;</span> ssmtp.<span class="me1">c</span> <span class="nu0">2008</span><span class="nu0">-03</span><span class="nu0">-06</span> <span class="nu0">22</span><span class="sy0">:</span><span class="nu0">01</span><span class="sy0">:</span><span class="nu0">22.000000000</span> <span class="nu0">+0200</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+++</span> ssmtp.<span class="me1">c</span> <span class="nu0">2009</span><span class="nu0">-03</span><span class="nu0">-15</span> <span class="nu0">00</span><span class="sy0">:</span><span class="nu0">02</span><span class="sy0">:</span><span class="nu0">11.000000000</span> <span class="nu0">+0200</span></div>
</li>
<li class="li1">
<div class="de1">@@ <span class="nu0">-39</span>,<span class="nu0">6</span> <span class="nu0">+39</span>,<span class="nu0">9</span> @@</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co2">#include &lt;fcntl.h&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co2">#include &quot;xgethostname.h&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span><span class="co1">// added by avz 2008-03-14</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span><span class="co2">#include &lt;time.h&gt;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;bool_t have_date <span class="sy0">=</span> <span class="kw2">False</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;bool_t have_from <span class="sy0">=</span> <span class="kw2">False</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co2">#ifdef HASTO_OPTION</span></div>
</li>
<li class="li1">
<div class="de1">@@ <span class="nu0">-112</span>,<span class="nu0">12</span> <span class="nu0">+115</span>,<span class="nu0">12</span> @@</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co2">#ifdef LOGFILE</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; FILE <span class="sy0">*</span>fp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">-</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="br0">&#40;</span>fp <span class="sy0">=</span> fopen<span class="br0">&#40;</span><span class="st0">&quot;/tmp/ssmtp.log&quot;</span>, <span class="st0">&quot;a&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">!=</span> <span class="br0">&#40;</span>FILE <span class="sy0">*</span><span class="br0">&#41;</span><span class="kw2">NULL</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span> <span class="kw1">if</span><span class="br0">&#40;</span><span class="br0">&#40;</span>fp <span class="sy0">=</span> fopen<span class="br0">&#40;</span><span class="st0">&quot;/var/log/ssmtp.log&quot;</span>, <span class="st0">&quot;a&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">!=</span> <span class="br0">&#40;</span>FILE <span class="sy0">*</span><span class="br0">&#41;</span><span class="kw2">NULL</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#40;</span><span class="kw4">void</span><span class="br0">&#41;</span>fprintf<span class="br0">&#40;</span>fp, <span class="st0">&quot;%s<span class="es0">\n</span>&quot;</span>, buf<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#40;</span><span class="kw4">void</span><span class="br0">&#41;</span>fclose<span class="br0">&#40;</span>fp<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">-</span> &nbsp; <span class="br0">&#40;</span><span class="kw4">void</span><span class="br0">&#41;</span>fprintf<span class="br0">&#40;</span>stderr, <span class="st0">&quot;Can&#39;t write to /tmp/ssmtp.log<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span> &nbsp; <span class="br0">&#40;</span><span class="kw4">void</span><span class="br0">&#41;</span>fprintf<span class="br0">&#40;</span>stderr, <span class="st0">&quot;Can&#39;t write to /var/log/ssmtp.log<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="co2">#endif</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">@@ <span class="nu0">-1408</span>,<span class="nu0">6</span> <span class="nu0">+1411</span>,<span class="nu0">9</span> @@</div>
</li>
<li class="li1">
<div class="de1">&nbsp; uid_t uid;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; bool_t minus_v_save;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw4">int</span> timeout <span class="sy0">=</span> <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span> <span class="co1">// added by avz 2009-03-14</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span> &nbsp;time_t event_time;</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span> <span class="kw4">struct</span> tm <span class="sy0">*</span>tms;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; outbytes <span class="sy0">=</span> <span class="nu0">0</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; ht <span class="sy0">=</span> <span class="sy0">&amp;</span>headers;</div>
</li>
<li class="li1">
<div class="de1">@@ <span class="nu0">-1663</span>,<span class="nu0">8</span> <span class="nu0">+1669</span>,<span class="nu0">12</span> @@</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#40;</span><span class="kw4">void</span><span class="br0">&#41;</span>smtp_okay<span class="br0">&#40;</span>sock, buf<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#40;</span><span class="kw4">void</span><span class="br0">&#41;</span>close<span class="br0">&#40;</span>sock<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">-</span> log_event<span class="br0">&#40;</span>LOG_INFO, <span class="st0">&quot;Sent mail for %s (%s) uid=%d username=%s outbytes=%d&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">-</span> &nbsp; from_strip<span class="br0">&#40;</span>uad<span class="br0">&#41;</span>, buf, uid, pw<span class="sy0">-</span>&gt;pw_name, outbytes<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span> <span class="co1">// added by avz 2009-03-14</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span> time<span class="br0">&#40;</span><span class="sy0">&amp;</span>event_time<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span> &nbsp;tms<span class="sy0">=</span>localtime<span class="br0">&#40;</span><span class="sy0">&amp;</span>event_time<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span> <span class="co1">// log_event(LOG_INFO, &quot;Sent mail for %s (%s) uid=%d username=%s outbytes=%d&quot;, &nbsp;from_strip(uad), buf, uid, pw-&gt;pw_name, outbytes);</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span> log_event<span class="br0">&#40;</span>LOG_INFO, <span class="st0">&quot;%4.4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d sent mail for %s (%s) uid=%d username=%s outbytes=%d&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">+</span> &nbsp; <span class="nu0">1900</span><span class="sy0">+</span>tms<span class="sy0">-</span>&gt;tm_year,<span class="nu0">1</span><span class="sy0">+</span>tms<span class="sy0">-</span>&gt;tm_mon,tms<span class="sy0">-</span>&gt;tm_mday,tms<span class="sy0">-</span>&gt;tm_hour,tms<span class="sy0">-</span>&gt;tm_min,tms<span class="sy0">-</span>&gt;tm_sec, from_strip<span class="br0">&#40;</span>uad<span class="br0">&#41;</span>, buf, uid, pw<span class="sy0">-</span>&gt;pw_name, outbytes<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">return</span><span class="br0">&#40;</span><span class="nu0">0</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
</ol>
</div>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/07/04/bash-history-timestamp/' rel='bookmark' title='Permanent Link: История команд в bash с указанием даты и времени'>История команд в bash с указанием даты и времени</a> <small>Читая в очередной раз man по bash-у, наткнулся на интересную переменную оболочки, цитирую: HISTTIMEFORMAT If this variable is set and...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2009/03/15/ssmtp-log-patch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
