<?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>wd and cc &#187; sendmail</title>
	<atom:link href="http://wdicc.com/tag/sendmail/feed/" rel="self" type="application/rss+xml" />
	<link>http://wdicc.com</link>
	<description>Happy every day...</description>
	<lastBuildDate>Wed, 01 Feb 2012 03:27:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>无聊又写一个用来发邮件的 pm..</title>
		<link>http://wdicc.com/sendmail-pm/</link>
		<comments>http://wdicc.com/sendmail-pm/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 08:23:35 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[sendmail]]></category>

		<guid isPermaLink="false">http://wdicc.com/sendmail-pm/</guid>
		<description><![CDATA[继使用 perl 发中文标题邮件，和中文附件邮件后，又把他们整合了一下写了一个 pm 干这个事。 其实发带附件的邮件应该是有现成的 pm 干这个事的，比如 MIME::Lite 之类，没特殊需求还是用那个吧，这个纯属无聊写的。 文件前面有使用方法。。 package SendMail; &#160; use strict; use warnings; use Data::Dumper; use Encode; use MIME::Base64; &#160; =head1 Examples use SendMail; &#160; my $sm = SendMail-&#62;new( { To =&#62; 'you@foo.com, other@bar.com', Subject =&#62; 'just a test 中文', }); &#160; -- or -- &#160; my $sm = SendMail-&#62;new( [...]]]></description>
			<content:encoded><![CDATA[<p>继使用 perl 发<a href='http://wdicc.com/sendmail-use-perl/'>中文标题邮件</a>，和<a href='http://wdicc.com/sned-mail-with-attachment/'>中文附件邮件</a>后，又把他们整合了一下写了一个 pm 干这个事。</p>
<p>其实发带附件的邮件应该是有现成的 pm 干这个事的，比如 MIME::Lite 之类，没特殊需求还是用那个吧，这个纯属无聊写的。</p>
<p>文件前面有使用方法。。</p>

<div class="wp_syntax"><div class="code"><pre class="perl"><a href="http://perldoc.perl.org/functions/package.html"><span class="kw3">package</span></a> SendMail<span class="sy0">;</span>
&nbsp;
<span class="kw2">use</span> strict<span class="sy0">;</span>
<span class="kw2">use</span> warnings<span class="sy0">;</span>
<span class="kw2">use</span> Data<span class="sy0">::</span><span class="me2">Dumper</span><span class="sy0">;</span>
<span class="kw2">use</span> Encode<span class="sy0">;</span>
<span class="kw2">use</span> MIME<span class="sy0">::</span><span class="me2">Base64</span><span class="sy0">;</span>
&nbsp;
<span class="coMULTI">=head1 Examples
use SendMail;
&nbsp;
my $sm = SendMail-&gt;new( {
    To =&gt; 'you@foo.com, other@bar.com',
    Subject =&gt; 'just a test 中文',
    });
&nbsp;
-- or --
&nbsp;
my $sm = SendMail-&gt;new( {
    From =&gt; 'me@abc.com',
    To =&gt; 'you@foo.com, other@bar.com',
    Subject =&gt; 'just a test 中文',
    } );
&nbsp;
-- or --
&nbsp;
my $sm = SendMail-&gt;new( {
    From =&gt; 'me@abc.com',
    To =&gt; 'you@foo.com, other@bar.com',
    Cc =&gt; 'cc@foobar.com',
    Subject =&gt; 'just a test 中文',
    } );
&nbsp;
&nbsp;
$sm-&gt;attach( {
    Type =&gt; &quot;text/plain&quot;,
    Data =&gt; &quot;只是一个测试..a test&quot;
    });
&nbsp;
$sm-&gt;attach( {
    Type =&gt; 'application/octet-stream',
    Filename =&gt; 'test 中文.txt',
    Data =&gt; &quot;只是一个 test ...&quot;
    });
&nbsp;
$sm-&gt;test;
&nbsp;
-- or --
&nbsp;
$sm-&gt;send;
&nbsp;
=cut</span>
&nbsp;
&nbsp;
&nbsp;
<span class="kw2">use</span> vars <a href="http://perldoc.perl.org/functions/qw.html"><span class="kw3">qw</span></a><span class="br0">&#40;</span><span class="re0">$VERSION</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$VERSION</span> <span class="sy0">=</span> <span class="st_h">'0.01'</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">our</span> <span class="re0">$boundary</span> <span class="sy0">=</span> <span class="st0">&quot;FFFFFFFFKKKKKK&quot;</span><span class="sy0">;</span>
<span class="kw1">our</span> <span class="re0">$from</span> <span class="sy0">=</span> <span class="st_h">'no-reply@abc.com'</span><span class="sy0">;</span>
<span class="kw1">our</span> <span class="re0">$subject</span> <span class="sy0">=</span> <span class="st0">&quot;No subject&quot;</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">our</span> <span class="re0">$to</span><span class="sy0">;</span>
<span class="kw1">our</span> <span class="re0">$cc</span><span class="sy0">;</span>
<span class="kw1">our</span> <span class="re0">@body</span><span class="sy0">;</span>
&nbsp;
&nbsp;
<span class="kw2">sub</span> <span class="kw2">new</span> <span class="br0">&#123;</span>
    <span class="kw1">my</span> <span class="re0">$package</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a><span class="sy0">;</span>
    <span class="kw1">my</span> <span class="re0">$info</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a><span class="sy0">;</span>
&nbsp;
    <span class="re0">$subject</span> <span class="sy0">=</span> <span class="re0">$info</span><span class="sy0">-&gt;</span><span class="br0">&#123;</span>Subject<span class="br0">&#125;</span> <span class="sy0">||</span> <span class="re0">$subject</span><span class="sy0">;</span>
    <span class="re0">$subject</span> <span class="sy0">=</span> encode<span class="br0">&#40;</span><span class="st_h">'MIME-B'</span><span class="sy0">,</span> decode<span class="br0">&#40;</span><span class="st_h">'utf8'</span><span class="sy0">,</span> <span class="re0">$subject</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$from</span> <span class="sy0">=</span> <span class="re0">$info</span><span class="sy0">-&gt;</span><span class="br0">&#123;</span>From<span class="br0">&#125;</span> <span class="sy0">||</span> <span class="re0">$from</span><span class="sy0">;</span>
    <span class="re0">$to</span> <span class="sy0">=</span> <span class="re0">$info</span><span class="sy0">-&gt;</span><span class="br0">&#123;</span>To<span class="br0">&#125;</span> <span class="sy0">||</span> <a href="http://perldoc.perl.org/functions/die.html"><span class="kw3">die</span></a> <span class="st0">&quot;Need to set MailTo 'To'!&quot;</span><span class="sy0">;</span>
    <span class="re0">$cc</span> <span class="sy0">=</span> <span class="re0">$info</span><span class="sy0">-&gt;</span><span class="br0">&#123;</span>Cc<span class="br0">&#125;</span> <span class="sy0">||</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span>
&nbsp;
    <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@body</span><span class="sy0">,</span> <span class="st0">&quot;MIME-Version: 1.0&quot;</span><span class="sy0">;</span>
    <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@body</span><span class="sy0">,</span> <span class="st0">&quot;Content-Type: multipart/mixed; boundary=<span class="es0">\&quot;</span>$boundary<span class="es0">\&quot;</span>&quot;</span><span class="sy0">;</span>
    <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@body</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span>
&nbsp;
    <a href="http://perldoc.perl.org/functions/return.html"><span class="kw3">return</span></a> <a href="http://perldoc.perl.org/functions/bless.html"><span class="kw3">bless</span></a><span class="br0">&#40;</span> <span class="br0">&#123;</span><span class="br0">&#125;</span><span class="sy0">,</span> <span class="re0">$package</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw2">sub</span> attach <span class="br0">&#123;</span>
    <span class="kw1">my</span> <span class="re0">$self</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a><span class="sy0">;</span>
    <span class="kw1">my</span> <span class="re0">$f_hash</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a><span class="sy0">;</span>
&nbsp;
    <a href="http://perldoc.perl.org/functions/die.html"><span class="kw3">die</span></a> <span class="st0">&quot;Need data when attach!&quot;</span> <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="kw1">not</span> <a href="http://perldoc.perl.org/functions/defined.html"><span class="kw3">defined</span></a> <span class="re0">$f_hash</span><span class="sy0">-&gt;</span><span class="br0">&#123;</span>Data<span class="br0">&#125;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
    <span class="kw1">my</span> <span class="re0">$type</span> <span class="sy0">=</span> <span class="st0">&quot;text/plain&quot;</span><span class="sy0">;</span>
    <span class="re0">$type</span> <span class="sy0">=</span> <span class="re0">$f_hash</span><span class="sy0">-&gt;</span><span class="br0">&#123;</span>Type<span class="br0">&#125;</span> <span class="kw1">if</span> <a href="http://perldoc.perl.org/functions/defined.html"><span class="kw3">defined</span></a> <span class="re0">$f_hash</span><span class="sy0">-&gt;</span><span class="br0">&#123;</span>Type<span class="br0">&#125;</span><span class="sy0">;</span>
&nbsp;
    <span class="kw1">my</span> <span class="re0">@t</span><span class="sy0">;</span>
    <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@t</span><span class="sy0">,</span> <span class="st0">&quot;--$boundary&quot;</span><span class="sy0">;</span>
    <span class="kw1">if</span> <span class="br0">&#40;</span> <span class="re0">$type</span> <span class="kw1">eq</span> <span class="st0">&quot;text/plain&quot;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@t</span><span class="sy0">,</span> <span class="st0">&quot;Content-Type: $type; charset=utf-8&quot;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
        <span class="kw1">my</span> <span class="re0">$filename</span> <span class="sy0">=</span> <span class="st0">&quot;file1.txt&quot;</span><span class="sy0">;</span>
        <span class="re0">$filename</span> <span class="sy0">=</span> encode<span class="br0">&#40;</span><span class="st_h">'MIME-B'</span><span class="sy0">,</span> decode<span class="br0">&#40;</span><span class="st_h">'utf8'</span><span class="sy0">,</span> <span class="re0">$f_hash</span><span class="sy0">-&gt;</span><span class="br0">&#123;</span>Filename<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="kw1">if</span> <a href="http://perldoc.perl.org/functions/defined.html"><span class="kw3">defined</span></a> <span class="re0">$f_hash</span><span class="sy0">-&gt;</span><span class="br0">&#123;</span>Filename<span class="br0">&#125;</span><span class="sy0">;</span>
        <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@t</span><span class="sy0">,</span> <span class="st0">&quot;Content-Type: $type&quot;</span><span class="sy0">;</span>
        <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@t</span><span class="sy0">,</span> <span class="st0">&quot;Content-Disposition: attachment; filename=$filename&quot;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>
    <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@t</span><span class="sy0">,</span> <span class="st0">&quot;Content-Transfer-Encoding: base64&quot;</span><span class="sy0">;</span>
    <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@t</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span>
    <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@t</span><span class="sy0">,</span> encode_base64<span class="br0">&#40;</span><span class="re0">$f_hash</span><span class="sy0">-&gt;</span><span class="br0">&#123;</span>Data<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
    <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@body</span><span class="sy0">,</span> <span class="re0">@t</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw2">sub</span> <a href="http://perldoc.perl.org/functions/send.html"><span class="kw3">send</span></a> <span class="br0">&#123;</span>
    <span class="kw1">my</span> <span class="re0">$self</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a><span class="sy0">;</span>
&nbsp;
    <a href="http://perldoc.perl.org/functions/open.html"><span class="kw3">open</span></a><span class="br0">&#40;</span><span class="kw1">my</span> <span class="re0">$fh</span><span class="sy0">,</span> <span class="st_h">'|/usr/sbin/sendmail -t'</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$self</span><span class="sy0">-&gt;</span><span class="me1">print_to</span><span class="br0">&#40;</span><span class="re0">$fh</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <a href="http://perldoc.perl.org/functions/close.html"><span class="kw3">close</span></a><span class="br0">&#40;</span><span class="re0">$fh</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw2">sub</span> print_to <span class="br0">&#123;</span>
    <span class="kw1">my</span> <span class="re0">$self</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a><span class="sy0">;</span>
    <span class="kw1">my</span> <span class="re0">$fh</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a><span class="sy0">;</span>
&nbsp;
    <a href="http://perldoc.perl.org/functions/push.html"><span class="kw3">push</span></a> <span class="re0">@body</span><span class="sy0">,</span> <span class="st0">&quot;--$boundary--&quot;</span><span class="sy0">;</span>
&nbsp;
    <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="re0">$fh</span> <span class="st0">&quot;From: $from<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
    <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="re0">$fh</span> <span class="st0">&quot;To: $to<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
    <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="re0">$fh</span> <span class="st0">&quot;Cc: $cc<span class="es0">\r</span><span class="es0">\n</span>&quot;</span> <span class="kw1">if</span> <span class="re0">$cc</span><span class="sy0">;</span>
    <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="re0">$fh</span> <span class="st0">&quot;Subject: $subject<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
&nbsp;
    <span class="kw1">for</span> <span class="br0">&#40;</span> <span class="re0">@body</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> <span class="re0">$fh</span> <span class="st0">&quot;$_<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw2">sub</span> test <span class="br0">&#123;</span>
    <span class="kw1">my</span> <span class="re0">$self</span> <span class="sy0">=</span> <a href="http://perldoc.perl.org/functions/shift.html"><span class="kw3">shift</span></a><span class="sy0">;</span>
&nbsp;
    <a href="http://perldoc.perl.org/functions/open.html"><span class="kw3">open</span></a> <span class="br0">&#40;</span> <span class="kw1">my</span> <span class="re0">$fh</span><span class="sy0">,</span> <span class="st_h">'&gt;-'</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$self</span><span class="sy0">-&gt;</span><span class="me1">print_to</span><span class="br0">&#40;</span><span class="re0">$fh</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <a href="http://perldoc.perl.org/functions/close.html"><span class="kw3">close</span></a><span class="br0">&#40;</span><span class="re0">$fh</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="nu0">1</span><span class="sy0">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/sendmail-pm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用 perl 发带附件的邮件</title>
		<link>http://wdicc.com/sned-mail-with-attachment/</link>
		<comments>http://wdicc.com/sned-mail-with-attachment/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 10:33:38 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[sendmail]]></category>

		<guid isPermaLink="false">http://wdicc.com/sned-mail-with-attachment/</guid>
		<description><![CDATA[继 上篇 使用 perl 发带中文标题的邮件后，又研究了下发带附件的。 基本差别不大，主要是那个 Content-type 要变一下。那个 boundary 可以自己随便写，和后面的统一就行了。 my $title = encode_base64&#40;&#34;标题&#34;, &#34;&#34;&#41;; my $body = encode_base64&#40;&#34;邮件正文&#34;&#41;; my $attach = encode_base64&#40;&#34;附件内容&#34;&#41;; my $filename = encode&#40;'MIME-B', decode&#40;'utf8', &#34;文件中文.txt&#34;&#41;&#41; &#160; open&#40;MAIL, '&#124;/usr/sbin/sendmail -t'&#41;; &#160; print MAIL &#34;From: test\@abs.com\r\n&#34;; print MAIL &#34;To: test\@abs.com\r\n&#34;; print MAIL &#34;Subject: =?UTF-8?B?$title?=\r\n&#34;; print MAIL &#34;MIME-Version: 1.0\r\n&#34;; # print MAIL &#34;Content-type: text/plain; [...]]]></description>
			<content:encoded><![CDATA[<p>继 <a href="http://wdicc.com/sendmail-use-perl/">上篇</a> 使用 perl 发带中文标题的邮件后，又研究了下发带附件的。</p>
<p>基本差别不大，主要是那个 Content-type 要变一下。那个 boundary 可以自己随便写，和后面的统一就行了。</p>

<div class="wp_syntax"><div class="code"><pre class="perl"><span class="kw1">my</span> <span class="re0">$title</span> <span class="sy0">=</span> encode_base64<span class="br0">&#40;</span><span class="st0">&quot;标题&quot;</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">my</span> <span class="re0">$body</span> <span class="sy0">=</span> encode_base64<span class="br0">&#40;</span><span class="st0">&quot;邮件正文&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">my</span> <span class="re0">$attach</span> <span class="sy0">=</span> encode_base64<span class="br0">&#40;</span><span class="st0">&quot;附件内容&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">my</span> <span class="re0">$filename</span> <span class="sy0">=</span> encode<span class="br0">&#40;</span><span class="st_h">'MIME-B'</span><span class="sy0">,</span> decode<span class="br0">&#40;</span><span class="st_h">'utf8'</span><span class="sy0">,</span> <span class="st0">&quot;文件中文.txt&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>
&nbsp;
<a href="http://perldoc.perl.org/functions/open.html"><span class="kw3">open</span></a><span class="br0">&#40;</span>MAIL<span class="sy0">,</span> <span class="st_h">'|/usr/sbin/sendmail -t'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> MAIL <span class="st0">&quot;From: test<span class="es0">\@</span>abs.com<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> MAIL <span class="st0">&quot;To: test<span class="es0">\@</span>abs.com<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> MAIL <span class="st0">&quot;Subject: =?UTF-8?B?$title?=<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> MAIL <span class="st0">&quot;MIME-Version: 1.0<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<span class="co1"># print MAIL &quot;Content-type: text/plain; charset=utf-8\r\n&quot;;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> MAIL <span class="co4">&lt;&lt;EOF;
Content-Type: multipart/mixed; boundary=\&quot;FFFFFFFFKKKKKK\&quot;
&nbsp;
--FFFFFFFFKKKKKK
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
&nbsp;
$body
--FFFFFFFFKKKKKK
Content-Type: application/octet-stream
Content-Disposition: attachment; filename=$filename.csv
Content-Transfer-Encoding: base64
&nbsp;
$attach
--FFFFFFFFKKKKKK--
EOF</span>
    <a href="http://perldoc.perl.org/functions/close.html"><span class="kw3">close</span></a><span class="br0">&#40;</span>MAIL<span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/sned-mail-with-attachment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用 perl 发送中文邮件标题乱码</title>
		<link>http://wdicc.com/sendmail-use-perl/</link>
		<comments>http://wdicc.com/sendmail-use-perl/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 08:25:23 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[sendmail]]></category>

		<guid isPermaLink="false">http://wdicc.com/?p=758</guid>
		<description><![CDATA[代码如下面，解决乱码的方法是使用 base64 编码。 use MIME::Base64::Perl; &#160; open&#40;MAIL, '&#124;/usr/sbin/sendmail -t'&#41;; &#160; my $recver = 'wangdong@abc.com'; my $alertTitle = &#34;中文 asdfsdf sdfsdf sdf sdf s df sd fsd f sd fsd f sdf sdf sdf&#34;; my $alertText = &#34;body &#34;; &#160; my $encoded = encode_base64&#40;$alertTitle, &#34;&#34;&#41;; &#160; print MAIL &#34;From: alert\@abc.com\r\n&#34;; print MAIL &#34;To: $recver\r\n&#34;; print MAIL [...]]]></description>
			<content:encoded><![CDATA[<p>代码如下面，解决乱码的方法是使用 base64 编码。</p>

<div class="wp_syntax"><div class="code"><pre class="perl"><span class="kw2">use</span> MIME<span class="sy0">::</span><span class="me2">Base64</span><span class="sy0">::</span><span class="me2">Perl</span><span class="sy0">;</span>
&nbsp;
<a href="http://perldoc.perl.org/functions/open.html"><span class="kw3">open</span></a><span class="br0">&#40;</span>MAIL<span class="sy0">,</span> <span class="st_h">'|/usr/sbin/sendmail -t'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">my</span> <span class="re0">$recver</span> <span class="sy0">=</span> <span class="st_h">'wangdong@abc.com'</span><span class="sy0">;</span>
<span class="kw1">my</span> <span class="re0">$alertTitle</span> <span class="sy0">=</span> <span class="st0">&quot;中文 asdfsdf sdfsdf sdf sdf s df sd fsd f sd fsd f sdf sdf sdf&quot;</span><span class="sy0">;</span>
<span class="kw1">my</span> <span class="re0">$alertText</span> <span class="sy0">=</span> <span class="st0">&quot;body &quot;</span><span class="sy0">;</span>
&nbsp;
<span class="kw1">my</span> <span class="re0">$encoded</span> <span class="sy0">=</span> encode_base64<span class="br0">&#40;</span><span class="re0">$alertTitle</span><span class="sy0">,</span> <span class="st0">&quot;&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> MAIL <span class="st0">&quot;From: alert<span class="es0">\@</span>abc.com<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> MAIL <span class="st0">&quot;To: $recver<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> MAIL <span class="st0">&quot;Subject: =?UTF-8?B?&quot;</span> <span class="sy0">.</span> <span class="re0">$encoded</span> <span class="sy0">.</span> <span class="st0">&quot;?=<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> MAIL <span class="st0">&quot;MIME-Version: 1.0<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> MAIL <span class="st0">&quot;Content-type: text/plain; charset=utf-8<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> MAIL <span class="st0">&quot;<span class="es0">\n</span>&quot;</span><span class="sy0">;</span>
<a href="http://perldoc.perl.org/functions/print.html"><span class="kw3">print</span></a> MAIL <span class="st0">&quot;$alertText&quot;</span><span class="sy0">;</span>
&nbsp;
<a href="http://perldoc.perl.org/functions/close.html"><span class="kw3">close</span></a><span class="br0">&#40;</span>MAIL<span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div>

<p>这里面 encode_base64 可以把文本做 base64 编码，要注意的是这个方法的第二个参数，是用来把编码结果进行格式化的，会每 76 个字符插入一个这个参数，默认是换行。</p>
<p>如果不是 utf8 的文本，那把里面的 utf8 改一下就好了。</p>
]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/sendmail-use-perl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>命令行发送有附件的邮件</title>
		<link>http://wdicc.com/send-mail-with-attachment/</link>
		<comments>http://wdicc.com/send-mail-with-attachment/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 09:11:23 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Mail]]></category>
		<category><![CDATA[sendmail]]></category>

		<guid isPermaLink="false">http://wdicc.com/?p=465</guid>
		<description><![CDATA[命令行下面发送邮件比较简单，恐怕都会使用。 $ echo &#34;hello .. &#34; &#124; mail -s subject xxx@abc.com $ cat /path/to/file &#124; mail -s subject xxx@abc.com $ mail -s subject xxx@abc.com &#60;&#60; EOF hi the end.. EOF 上面这些方法都可以发送邮件。还有一种方法。 $ cat a.txt Subject: test From: xxx@abc.com To: xxx@abc.com &#160; hi sdfsdfsdf the end. $ cat a.txt &#124; sendmail -t 这样可以把邮件头信息写到文件里面的，你也可以用 php，perl 来打印类似的信息给 sendmail [...]]]></description>
			<content:encoded><![CDATA[<p>命令行下面发送邮件比较简单，恐怕都会使用。</p>

<div class="wp_syntax"><div class="code"><pre class="bash">$ <span class="kw3">echo</span> <span class="st0">&quot;hello .. &quot;</span> <span class="sy0">|</span> mail <span class="re5">-s</span> subject xxx<span class="sy0">@</span>abc.com
$ <span class="kw2">cat</span> <span class="sy0">/</span>path<span class="sy0">/</span>to<span class="sy0">/</span><span class="kw2">file</span> <span class="sy0">|</span> mail <span class="re5">-s</span> subject xxx<span class="sy0">@</span>abc.com
$ mail <span class="re5">-s</span> subject xxx<span class="sy0">@</span>abc.com <span class="co2">&lt;&lt; EOF
hi
the end..
EOF</span></pre></div></div>

<p>上面这些方法都可以发送邮件。还有一种方法。</p>

<div class="wp_syntax"><div class="code"><pre class="bash">$ <span class="kw2">cat</span> a.txt
Subject: <span class="kw3">test</span>
From: xxx<span class="sy0">@</span>abc.com
To: xxx<span class="sy0">@</span>abc.com
&nbsp;
hi
sdfsdfsdf
the end.
$ <span class="kw2">cat</span> a.txt <span class="sy0">|</span> <span class="kw2">sendmail</span> <span class="re5">-t</span></pre></div></div>

<p>这样可以把邮件头信息写到文件里面的，你也可以用 php，perl 来打印类似的信息给 sendmail -t ，让他来发。</p>
<p>那么如果有附件应该怎么办？可以使用 uuencode。</p>

<div class="wp_syntax"><div class="code"><pre class="bash">$ uuencode a.txt a.txt <span class="sy0">|</span> mail <span class="re5">-s</span> <span class="kw3">test</span> xxx<span class="sy0">@</span>abc.com
$ <span class="br0">&#40;</span><span class="kw2">cat</span> a.txt; uuencode b.txt b.txt; <span class="kw2">cat</span> c.txt<span class="br0">&#41;</span> <span class="sy0">|</span><span class="kw2">sendmail</span> <span class="re5">-t</span></pre></div></div>

<p>应该说的很明白了吧？</p>
]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/send-mail-with-attachment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sendmail 中自动抄送某个用户的邮件给别人</title>
		<link>http://wdicc.com/howto-cc-an-email-to-others-in-sendmail/</link>
		<comments>http://wdicc.com/howto-cc-an-email-to-others-in-sendmail/#comments</comments>
		<pubDate>Tue, 26 Jun 2007 03:20:01 +0000</pubDate>
		<dc:creator>wd</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[sendmail]]></category>
		<category><![CDATA[邮件转发]]></category>

		<guid isPermaLink="false">http://blog.wdicc.com/wordpress/howto-cc-an-email-to-others-in-sendmail/</guid>
		<description><![CDATA[sendmail有个 /etc/aliases 配置文件，在里面可以给某个帐号设置alias，这样给这个alias发的邮件，都会给设置好的用户转发过去。要知道sendmail的帐号是和系统帐号联系在一起的，添加mail帐号得给系统添加帐号（qmail可以实现虚拟用户，或许sendmail也可以，而我不知道罢了）。而这个alias帐号却不是必须有得有系统帐号的，只要设置了alias，就可以给alias用户发邮件，就好像系统真有这么一个帐号一样。 关于 /etc/aliases 文件，这里有个文章有说明。下面复制几个例子。 # RFC 822 规定每个域名都需要有一个 &#34;postmaster&#34; postmaster : root &#160; # 将 postmaster 的邮件都转发给 root 帐号，当然你下面还可以将root帐号的邮件在转发给别人。 &#160; # 转发也可以转发到文件 # 比如这个，都说了nobody了还给发邮件，邮件都丢掉 nobody : /dev/null &#160; # 也可以通过管道作为另一个程序的输入 # 比如给procmail，它能实现的功能可就多了，比如可以根据邮件大小转发到不同的用户，或者调用spamassian、clamav来查垃圾邮件和病毒等 # 一个自动的bug跟踪程序 program-bugs: &#124;/usr/local/bin/program-bug-tracker &#160; # 也可以转发到多个帐号，用逗号分隔就可以 project-list: johndoe@host1.uiuc.edu,jsmith@host2.uiuc.edu,someone@host.purdue.edu 可以看到功能还是很强悍的，尤其是可以 pipe 到程序，procmail、maildrop都是很不错的过滤程序，能实现很多其他的功能。 标题的要求是“抄送”某个帐号的邮件给别的用户，有点类似监控的意思。怎么实现呢？可能第一个想到的就是类似下面这种方法： somebody:other1,other2,somebody 这样是不是就能实现抄送呢？这样会造成死循环，呵呵。 看样子似乎只能通过pipe到程序实现了，看procmail、maildrop的文档还不够头疼的。其实还有个简单的方法，就是 .forward 文件。 .forward 文件位于用户的 home [...]]]></description>
			<content:encoded><![CDATA[<p>sendmail有个 /etc/aliases 配置文件，在里面可以给某个帐号设置alias，这样给这个alias发的邮件，都会给设置好的用户转发过去。要知道sendmail的帐号是和系统帐号联系在一起的，添加mail帐号得给系统添加帐号（qmail可以实现虚拟用户，或许sendmail也可以，而我不知道罢了）。而这个alias帐号却不是必须有得有系统帐号的，只要设置了alias，就可以给alias用户发邮件，就好像系统真有这么一个帐号一样。</p>
<p>关于 /etc/aliases 文件，<a href="http://www.feep.net/sendmail/tutorial/intro/aliases.html">这里</a>有个文章有说明。下面复制几个例子。</p>
<p>
<div class="wp_syntax"><div class="code"><pre class="conf"># RFC 822 规定每个域名都需要有一个 &quot;postmaster&quot; 
postmaster      : root
&nbsp;
# 将 postmaster 的邮件都转发给 root 帐号，当然你下面还可以将root帐号的邮件在转发给别人。
&nbsp;
# 转发也可以转发到文件
# 比如这个，都说了nobody了还给发邮件，邮件都丢掉
nobody          : /dev/null
&nbsp;
# 也可以通过管道作为另一个程序的输入
# 比如给procmail，它能实现的功能可就多了，比如可以根据邮件大小转发到不同的用户，或者调用spamassian、clamav来查垃圾邮件和病毒等
# 一个自动的bug跟踪程序
program-bugs: |/usr/local/bin/program-bug-tracker
&nbsp;
# 也可以转发到多个帐号，用逗号分隔就可以
project-list: johndoe@host1.uiuc.edu,jsmith@host2.uiuc.edu,someone@host.purdue.edu</pre></div></div>

<p>可以看到功能还是很强悍的，尤其是可以 pipe 到程序，procmail、maildrop都是很不错的过滤程序，能实现很多其他的功能。</p>
<p>标题的要求是“抄送”某个帐号的邮件给别的用户，有点类似监控的意思。怎么实现呢？可能第一个想到的就是类似下面这种方法：</p>
<p>
<div class="wp_syntax"><div class="code"><pre class="conf">somebody:other1,other2,somebody</pre></div></div>

<p>这样是不是就能实现抄送呢？这样会造成死循环，呵呵。</p>
<p>看样子似乎只能通过pipe到程序实现了，看procmail、maildrop的文档还不够头疼的。其实还有个简单的方法，就是 <a href="http://www.feep.net/sendmail/tutorial/intro/forward.html">.forward</a> 文件。</p>
<p>.forward 文件位于用户的 home 下面，权限是 600 。他的功能和 /etc/aliases 文件类似，不过是 aliases 文件只能由root用户来修改，而 .forward 文件用户自己就可以修改。除了上面aliases能做到的事情外，他还多了一个功能，就是标题要求的功能。</p>
<p>按照标题的要求，只需要在 somebody 用户的 .forward 文件中放入下面的内容就可以了。</p>
<p>
<div class="wp_syntax"><div class="code"><pre class="conf">\\somebody
other1
other2</pre></div></div>

<p>要注意 somebody 前面的那个\，就是用来防止转发死循环的。加了\之后，给somebody转发的时候会忽略该用户的 .forward 文件。</p>
]]></content:encoded>
			<wfw:commentRss>http://wdicc.com/howto-cc-an-email-to-others-in-sendmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

