<?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; Postfix</title>
	<atom:link href="http://www.187299.com/archives/tag/postfix/feed" rel="self" type="application/rss+xml" />
	<link>http://www.187299.com</link>
	<description>寻觅生命中的那一片浅草......</description>
	<lastBuildDate>Wed, 16 Nov 2011 11:25:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Postfix里Maildir和Mailbox 的区别</title>
		<link>http://www.187299.com/archives/1118</link>
		<comments>http://www.187299.com/archives/1118#comments</comments>
		<pubDate>Fri, 31 Jul 2009 05:20:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Postfix]]></category>

		<guid isPermaLink="false">http://www.187299.com/?p=1118</guid>
		<description><![CDATA[版权声明：本文可以任意转载，转载时请保持文章的完整性，并以超链接形式标明文章原始出处和作者信息及本声明。 http://geoffl.blog.163.com/ 作者: 富贵猫 前阵子开始要做Postfix邮件服务器，网... ]]></description>
			<content:encoded><![CDATA[<p>版权声明：本文可以任意转载，转载时请保持文章的完整性，并以超链接形式标明文章原始出处和作者信息及本声明。</p>
<p><a href="http://geoffl.blog.163.com/" target="_blank">http://geoffl.blog.163.com/</a></p>
<p>作者: 富贵猫</p>
<p>前阵子开始要做Postfix邮件服务器，网上搜了好多文章，不过大部分文章只是作者自己安装步骤的罗列，只能算授人以鱼，所以我看了之后还是需要去看Postfix的手册，还要看很多官方的参考书，看完之后颇有心得，所以就打算写一个“授人以渔”的系列安装设置的文章，让你知其然也知其所以然。</p>
<p>--------------------------------------------------------------------------------</p>
<p>Postfix作邮箱，有4种设置方式，分别是共享域名+系统帐户、独立域名+系统帐户、独立域名+虚拟帐户和虚拟域名+特殊格式邮箱。鉴于通常我们不可能给每个用户设置一个系统帐户，所以第一第二种就不考虑不介绍了。既然是用Postfix来建立我们自己地邮箱系统，所以也没必要去兜很多圈子设置特殊格式邮箱，所以第四种也不考虑。剩下只有一种方式，就是独立域名+虚拟邮箱。</p>
<p>所谓独立域名，就是即使用户名是一样的，但如果域名不同其邮件也将放置在不同的目录。譬如info@abc.com和info@def.com，这二个e-mail地址都以info为用户名，但域名不同，如果是共享域名，他们的mail将被放置在同一个目录下，而独立域名将放置在不同目录下。如果你们公司是很大的集团，下面分好几个公司，分别有独立的域名，这难免有重名的员工，这种情况下，后者显然是我们希望看到的。而所谓虚拟帐户，既然那些邮箱用户只是使用mail服务，我们当然没有必要去给每个用户在Linux下面开设一个个系统帐户，所以我们就用一些数据库之类的东西来保存这些帐户信息，譬如用哈希表、SQL数据库或者LDAP。我使用的是独立域名+虚拟LDAP帐户。</p>
<p>Postfix的安装我就不说了，非常简单。不过如果不会也没关系，后面我会写一篇关于Postfix+mail quota的，那时候需要下载、补丁和编译，等于是Postfix的安装。</p>
<p>LDAP也不说了，要完全掌握LDAP不是这篇能解决的，我只假设你的LDAP服务器里已经有mail这个字段。</p>
<p>下面开始说Postfix如何设置。Postfix的配置文件是/etc/postfix/main.cf，这是独立域名+LDAP的设置</p>
<p># ===== Basic Setting =====<br />
mail_owner = postfix<br />
myhostname = pop.test.com<br />
inet_interfaces = all<br />
queue_directory = /var/spool/postfix<br />
mynetworks = 127.0.0.0/8</p>
<p>home_mailbox =</p>
<p># ===== Virtual Mailbox =====<br />
virtual_mailbox_domains = hash:/etc/postfix/v_domains<br />
virtual_mailbox_maps = ldap:/etc/postfix/v_mailbox_maps</p>
<p>virtual_mailbox_base = /var/spool/vhosts/<br />
virtual_minimum_uid = 500<br />
virtual_uid_maps = static:5000<br />
virtual_gid_maps = static:5000<br />
virtual_transport = virtual</p>
<p>myhostname设置你的邮件服务器名字</p>
<p>inet_interfaces = all设置你在哪些网卡上监听</p>
<p>另外有几个是需要解释的：我们接受哪些域名的邮件？我们的域名下有哪些用户？他们的邮件存放在什么目录？</p>
<p>我们接受那些域名的邮件，这是由virtual_mailbox_domains来定义的。虽然我们可以直接使用</p>
<p>virtual_mailbox_domains = test.com, test2.com</p>
<p>这样的格式来定义这些域名，不过我还是建议如我这样使用一个表来存放，这样更方便日后的维护，表名是随意取的，有没有后缀都没关系，我用v_domains作为表的名字，在main.cf里定义是</p>
<p>virtual_mailbox_domains = hash:/etc/postfix/v_domains</p>
<p>v_domains的内容如下</p>
<p>test.com OK</p>
<p>test2.com OK</p>
<p>这是个text文件，仅仅包含域名，但为了满足哈希表的格式，所以在后面添加一个OK。然后我们还要把这个文件变成Postfix的数据库格式，因此用如下命令转变其格式</p>
<p>postmap v_domains</p>
<p>之后你会得到一个以db为后缀的文件v_domains.db。注意，每次修改完v_domains你都需要使用一次postmap。</p>
<p>我们有哪些用户，这是由virtual_mailbox_maps来决定。同样，你可以用哈希表，不过我还是用LDAP。为了方便你理解，我先说明一下如果用哈希表，它的格式应该是</p>
<p>user1@test.com test.com/user1_mailDirectory/</p>
<p>user2@test.com test.com/user2_mailDirectory/</p>
<p>user1@test2.com test2.com/user1_mailDirectory/</p>
<p>左边是用户的e-mail地址，空格之后是该用户的邮件存放目录。既然我们说了，独立域名代表info@abc.com和info@def.com的邮件放置在不同目录下，所以我们的定义里user1@test.com和user1@test2.com的目录是不同的。如果换成LDAP，我们要得到相同的结果，即用e-mail地址来搜索，得到其邮件存放目录</p>
<p>既然讲到邮件存放目录，就一并解释一下到底这个目录怎样定义的。邮件是存放在</p>
<p>virtual_mailbox_base\virtual_mailbox_maps\home_mailbox下，也就是说virtual_mailbox_base定义的目录下，postfix会根据virtual_mailbox_maps返回的用户目录自动创建该目录，然后如果home_mailbox也有定义，那么在用户目录下还会创建home_mailbox定义的名字。举例来说，按照上面的设置，邮件会存放在</p>
<p>/var/spool/vhosts/test.com/user1/下面。</p>
<p>如果home_mailbox不是空白而是Mail/，那么就会存放在</p>
<p>/var/spool/vhost/test/com/user1/Mail/下面。home_mailbox有什么用呢？举个例子，比方你已经有homeDirectory了，但那是你平时放文件的地方，那么再在同样目录下放邮件就变得很奇怪，所以需要home_mailbox来定义邮件放在你homeDirectory下的什么目录下</p>
<p>注意：地址的最后有没有"/"决定了使用mailbox格式还是maildir格式，没有"/"表示mailbox，有表示maildir。所以并不象大部分人认为的，home_mailbox定义为MailDir才表示使用maildir格式。再举几个例子</p>
<p>/var/spool/vhosts/test.com/user1/  表示使用MailDir格式</p>
<p>/var/spool/vhosts/test.com/user1  表示使用MailBox格式</p>
<p>/var/spool/vhosts/test.com/user1/Mail/  表示使用MailDir格式</p>
<p>/var/spool/vhosts/test.com/user1/MailDir/ 表示使用MailDir格式</p>
<p>/var/spool/vhosts/test.com/user1/MailDir 表示使用MailBox格式，即使home_mailbox是maildir，但没有最后的"/"，只能表示使用MailBox格式。同样道理</p>
<p>/var/spool/vhosts/test.com/user1/MailBox/ 表示使用MailDir格式，虽然home_mailbox是mailbox，但最后的"/"就说明了是使用MailDir格式。</p>
<p>回到virtual_mailbox_maps的LDAP定义，其格式是</p>
<p>virtual_mailbox_maps = ldap:/etc/postfix/v_mailbox_maps</p>
<p>v_mailbox_maps只是一个连接Postfix和LDAP的配置文件，同样文件名是随意取的。v_mailbox_maps的内容是</p>
<p># LDAP Server的IP地址，我是设在和postfix同一电脑，所以是127.0.0.1</p>
<p>server_host = 127.0.0.1<br />
# 下面这些关于LDAP Search的内容如果你不了解，请学习LDAP</p>
<p>search_base = ou=people,o=test<br />
server_port = 389<br />
bind = yes<br />
bind_dn = cn=root,o=test<br />
bind_pw = &lt;rootpassword&gt;<br />
version = 3</p>
<p># 下面是关键，我会额外解释</p>
<p>query_filter = (mail=%s)<br />
result_attribute = mail<br />
result_format = %d/%u/</p>
<p>query_filter = (mai=%s)里，query_filter表示搜索用的字段，mail是表示你LDAP里的字段名，%s表示要进入Postfix服务器的那封e-mail的收件人，mail=%s就是搜索LDAP里的mail字段等于收件人的结果。</p>
<p>result_attribute 是LDAP返回的字段，如果你已经在LDAP里定义了譬如homeDirectory或者mailDirectory这样的字段来存放邮件目录，那么你可以直接使用</p>
<p>result_attribute = homeDirectory</p>
<p>这样的格式来定义，那么它直接返回你定义的homeDirectory，而且不需要后面的result_format。我没有这个字段，但我想把用户邮件放在各自的域名下，就如user1@test.com在test.com/user1/下一样，所以我只需要它返回mail字段，然后用result_format来改变返回字段的格式。result_format顾名思义就是把结果format一下，其中%d表示e-mail地址@之后的域名，d应该是domain的首字母，%u表示e-mail地址@之前的用户名，想来u就是username之类的，所以返回的mail地址user1@test.com经过result_format之后就变成了test.com/user1/。注意，%d/%u/最后那个"/"表示我使用MailDir格式存放我的e-mail。</p>
<p>virtual_uid_maps = static:5000<br />
virtual_gid_maps = static:5000</p>
<p>这2行表示邮件用什么身份的用户来存放，我定义了5000，所以你需要事先添加一个用户，并且其uid是5000</p>
<p>useradd postfixadmin –u 5000</p>
<p>名字是随意取的，只要注意uid和main.cf里这2行的定义相同就OK.</p>
<p>好了，如果一切顺利，你应该已经可以收到mail了，收件人没有存在在你LDAP里的那些邮件，会被退回。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.187299.com/archives/1118/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Howto setup Postfix and policyd-weight</title>
		<link>http://www.187299.com/archives/1044</link>
		<comments>http://www.187299.com/archives/1044#comments</comments>
		<pubDate>Wed, 24 Jun 2009 16:51:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Postfix]]></category>

		<guid isPermaLink="false">http://www.187299.com/?p=1044</guid>
		<description><![CDATA[1. Read the changelog 1.1. Download policyd-weight Depending on the bugfixes (see changelog) download the appropriate release: # wget http://www.policyd-weight.org/policyd-weight or if quot;devel&#38;quot; sounds more exciting: # wget http://www.policyd-... ]]></description>
			<content:encoded><![CDATA[<p>1. Read the changelog<br />
1.1. Download policyd-weight<br />
Depending on the bugfixes (see changelog) download the appropriate release:</p>
<div class="quote">
<blockquote><p># wget <a href="http://www.policyd-weight.org/policyd-weight" target="_blank">http://www.policyd-weight.org/policyd-weight</a></p></blockquote>
</div>
<p>or if quot;devel&amp;quot; sounds more exciting:</p>
<div class="quote">
<blockquote><p># wget <a href="http://www.policyd-weight.org/policyd-weight-devel" target="_blank">http://www.policyd-weight.org/policyd-weight-devel</a></p></blockquote>
</div>
<p>Move policyd-weight to the proper location for your operating system (ex<span class="t_tag" onclick="tagshow(event)">amp</span>le shows *<span class="t_tag" onclick="tagshow(event)">BSD</span></p>
<p>):</p>
<div class="quote">
<blockquote><p># mv policyd-weight /usr/local/libexec/<span class="t_tag" onclick="tagshow(event)">postfix</span>/policyd-weight<br />
# chmod 0555 /usr/local/libexec/postfix/policyd-weight</p></blockquote>
</div>
<p>Check the default settings</p>
<div class="quote">
<blockquote><p># /usr/local/libexec/postfix/policyd-weight defaults</p></blockquote>
</div>
<p>If these settings seem appropriate you don&amp;#39;t need a configuration file at all. In case you like to change some settings, create a file (i.e. /usr/local/etc/policyd-weight.conf) and add only the variables that differ from the defaults. For example if you want only DNSBL checks and a different port use:</p>
<div class="quote">
<blockquote><p># ----------------------------------------------------------------<br />
#  minimal configuration for policyd-weight<br />
# ----------------------------------------------------------------<br />
$<span class="t_tag" onclick="tagshow(event)">dns</span>bl_checks_only = 1;<br />
$TCP_PORT &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  = 12336;</p></blockquote>
</div>
<p>There is another option, which is not recommended:</p>
<div class="quote">
<blockquote><p># /usr/local/libexec/postfix/policyd-weight defaults &amp;gt; /usr/local/etc/policyd-weight.conf<br />
# chmod 0644 /usr/local/etc/policyd-weight.conf</p></blockquote>
</div>
<p>This will write the default configuration to a file. However, this is not good practice, because it will make maintaining the configuration file difficult and changed defaults will not picked up automatically.<br />
2.1 Add a system account for policyd-weight<br />
Use the appropriate commands for your operating system to add a new user and a new group named polw. This unprivileged user does not need a valid shell.<br />
2.2 Create an init script<br />
Either create an rc-init script or manage otherwise that policyd-weight gets started at boot-time. The command to start policyd-weight in daemon mode is:</p>
<div class="quote">
<blockquote><p># /path/to/policyd-weight start</p></blockquote>
</div>
<p>You need to be root to do that.<br />
3. Edit Postfix main.cf<br />
This example shows a minimal setup. Do NOT copy &amp; paste, instead adjust your main.cf to meet the minimal requirements. Please keep old authentication restrictions (such as <span class="t_tag" onclick="tagshow(event)">SASL</span>) and so forth:</p>
<div class="quote">
01:  <span class="t_tag" onclick="tagshow(event)">smtp</span>d_helo_required = yes &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;   # required<br />
02:  smtpd_delay_reject = yes &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp; # suggested<br />
03:<br />
04:  smtpd_helo_restrictions =<br />
05: &amp;nbsp;  &amp;nbsp; permit_mynetworks, &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;   # suggested<br />
06: &amp;nbsp;  &amp;nbsp; reject_invalid_hostname &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp; # suggested<br />
07:<br />
08:  smtpd_client_restrictions = permit_mynetworks &amp;nbsp;  &amp;nbsp; # suggested<br />
09:<br />
10:  smtpd_sender_restrictions = permit_mynetworks &amp;nbsp;  &amp;nbsp; # suggested<br />
11:<br />
12:  smtpd_recipient_restrictions =<br />
13: &amp;nbsp;  &amp;nbsp; permit_mynetworks, &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;   # required<br />
14: &amp;nbsp;  &amp;nbsp; ... other authed permits ...<br />
15: &amp;nbsp;  &amp;nbsp; ... (permit_sasl_authenticated) ...<br />
16: &amp;nbsp;  &amp;nbsp; reject_unauth_destination, &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp; # required<br />
17: &amp;nbsp;  &amp;nbsp; reject_unauth_pipelining, &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  # suggested<br />
18: &amp;nbsp;  &amp;nbsp; ... whitelists (role accounts, clients) ...<br />
19: &amp;nbsp;  &amp;nbsp; reject_non_fqdn_recipient, &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp;  &amp;nbsp; # suggested<br />
20: &amp;nbsp;  &amp;nbsp; check_policy_service inet:127.0.0.1:12525 &amp;nbsp;  &amp;nbsp; # required
</div>
<p>Lines 6: makes sure to only allow valid DNS Names (in terms of [RFC 2821] Sect. 2.3.5, [RFC 1123] Sect. 5.2.5 and [RFC 1035] Sect. 2.3.1) in the HELO command. reject_invalid_hostname (or reject_invalid_helo_hostname as of Postfix 2.3.x) makes sure that no bogus characters are used. It&amp;#39;s a safety and RFC setting.</p>
<p>Line 20: calls the policy daemon on host 127.0.0.1 (localhost) at port 12525.<br />
For whitelisting hosts read the FAQ.</p>
<p>To prevent that a proper MTA can use your own domain as sender please read and unterstand Ralf Hildebrandts receipe</p>
<p>If you don&amp;#39;t understand some settings or don&amp;#39;t know their meaning please read Postfix SMTP relay and access control first, respectively the postconf.5 manpage.<br />
4. Score tuning and other configurations<br />
To tune scores or turn on/off some features such as X-headers, read and edit /usr/local/etc/policyd-weight.conf<br />
The configuration file is Perl syntax. If you make Perl syntax errors there, policyd-weight won&amp;#39;t work.<br />
It is not required to restart or reload postfix. <span class="t_tag" onclick="tagshow(event)">Changes</span> made to the configuration are picked up by each new policyd-weight instance. To have changes take effect immediately you can a) kill each policyd-weight instance, or b) restart Postfix if running in master.cf mode.</p>
<p>转载自：<a href="http://www.thismail.org/bbs/thread-2044-1-1.html" target="_blank">http://www.thismail.org/bbs/thread-2044-1-1.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.187299.com/archives/1044/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>postfix权威指南笔记</title>
		<link>http://www.187299.com/archives/999</link>
		<comments>http://www.187299.com/archives/999#comments</comments>
		<pubDate>Fri, 19 Jun 2009 12:23:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Postfix]]></category>

		<guid isPermaLink="false">http://www.187299.com/?p=999</guid>
		<description><![CDATA[pcre perl兼容正则表达式 postconf -m 查看postfix支持的函数 postmap -q 测试任何种类的查询表 postmap -q hash:/etc/postfix/transport postmap -q mysql:/etc/postfix/transport.cf postalias postfix check 检查配置文件是否有问题... ]]></description>
			<content:encoded><![CDATA[<p>pcre perl兼容正则表达式</p>
<p>postconf -m 查看postfix支持的函数</p>
<p>postmap -q 测试任何种类的查询表</p>
<p>postmap -q hash:/etc/postfix/transport<br />
postmap -q mysql:/etc/postfix/transport.cf</p>
<p>postalias</p>
<p>postfix check<br />
检查配置文件是否有问题，文件与目录的拥有权是否正确，甚至帮你创建任何遗失的目录，</p>
<p>postfix的等效机制是定义在main.cf的queue_run_delay参数，默认值是1000秒</p>
<p>postfix -D 得出调试信息</p>
<p>/etc/services ---查看下文件内容</p>
<p>postsuper -h 保留邮件队列</p>
<p>postsuper -H 将保留的邮件队列重新激活</p>
<p>postsuper -r ALL 将被延迟了的邮件重新排队</p>
<p>postcat -q 邮件ID 查看一个队列文件的内容</p>
<p>要求postfix立刻投递滞留在队列里的邮件的操作成为清空（flush），<br />
命令是 postqueue -f</p>
<p>postqueue -s 清空寄到特定站点的邮件</p>
<p>postconf -l 查看postfix支持的锁机制</p>
<p>最简单的虚拟网域模式，是每位用户都可以收到每个网域的邮件。就用户的感受而言，<br />
就好像同一个邮箱有多个地址一样。这种模式的设定方法最简单，只要将所有虚拟网域名称都列在mydestination参数，并像平常一样为每一位用户（不管他们在哪一个网域）都创建自己的系统账户，他们就可以收到写给任何网域的邮件。</p>
<p>默认情况下，flush只管理relay_domains所列的网域。如果还有其他网域也需要快速清空服务，你可以将它们的网域名称列在fast_flush_domains</p>
]]></content:encoded>
			<wfw:commentRss>http://www.187299.com/archives/999/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS5.2、5.3上安装ispCP OMEGA</title>
		<link>http://www.187299.com/archives/435</link>
		<comments>http://www.187299.com/archives/435#comments</comments>
		<pubDate>Sat, 25 Apr 2009 06:06:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Postfix]]></category>

		<guid isPermaLink="false">http://www.momati.net/?p=435</guid>
		<description><![CDATA[IspCP Omega 简单介绍： IspCP 是作为另一款开源虚拟主机管理系统VHCS2的替代产品，采用Apache2+PHP5（fastcgi模式，支持每个虚机独立的php.ini）+MySQL5（提供内置的phpmyadmin）提供 Web 服务（也支持传统... ]]></description>
			<content:encoded><![CDATA[<p>IspCP Omega 简单介绍：<br />
IspCP 是作为另一款开源虚拟主机管理系统VHCS2的替代产品，采用Apache2+PHP5（fastcgi模式，支持每个虚机独立的php.ini）+MySQL5（提供内置的phpmyadmin）提供 Web 服务（也支持传统的 CGI），FTP 采用 Proftpd（也支持 webftp 功能），邮件是 postfix+courier+squirrermail，和 IspCPH管理平台（PHP 代码，支持管理员、代理商、虚拟主机用户三级用户，相互之间可以自由切换，自由增加子域名、FTP、MySQL、Mail 账号），另外对于每个虚拟主机都有独立的每天完整备份机制（可以用 FTP 下载）。</p>
<p>系统：CentOS5.2，无桌面，安装开发工具，开发库</p>
<p>一、禁用SELinux<br />
# vi /etc/selinux/config<br />
将<br />
SELINUX=enforcing<br />
修改为<br />
SELINUX=disabled</p>
<p># vi /etc/sysconfig/network<br />
将HOSTNAME修改为<br />
HOSTNAME=test.test.com</p>
<p>iptables没必要禁了，ispCP安装好后，会生成防火墙规则，并启用iptables</p>
<p>重启系统<br />
# init 6<br />
<span id="more-435"></span></p>
<p>二、安装ispCP所需基本软件<br />
1、下载ispcp-omega：<br />
# mkdir /root/download<br />
# cd /root/download<br />
# wget http://nchc.dl.sourceforge.net/sourceforge/ispcp/ispcp-omega-1.0.0.tar.gz<br />
# tar xzf ispcp-omega-1.0.0.tar.gz<br />
# cd ispcp-omega-1.0.0</p>
<p>2、安装rpm包：<br />
# yum install `cat ./docs/CentOS/centos-packages`<br />
这个过程会提示很多包都没有，没有关系，呆会激活另外一个更新源时，再重复以上yum的步骤。<br />
（由于是这样，在考虑干脆在这一步就用那个源，免得重复）</p>
<p>3、安装一个perl会用到的软件<br />
# cd /root/download<br />
# wget ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/ncftp-3.2.0-3.el5.kb.i386.rpm<br />
# rpm -Uvh ncftp-3.2.0-3.el5.kb.i386.rpm</p>
<p>4、初始化perl模块安装环境<br />
# perl -MCPAN -e shell<br />
# /usr/lib/perl5/5.8.8/CPAN/Config.pm initialized.</p>
<p>CPAN is the world-wide archive of perl resources. It consists of about<br />
100 sites that all replicate the same contents all around the globe.<br />
Many countries have at least one CPAN site already. The resources<br />
found on CPAN are easily accessible with the CPAN.pm module. If you<br />
want to use CPAN.pm, you have to configure it properly.</p>
<p>If you do not want to enter a dialog now, you can answer 'no' to this<br />
question and I'll try to autoconfigure. (Note: you can revisit this<br />
dialog anytime later by typing 'o conf init' at the cpan prompt.)</p>
<p>Are you ready for manual configuration? [yes] 直接回车</p>
<p>The following questions are intended to help you with the<br />
configuration. The CPAN module needs a directory of its own to cache<br />
important index files and maybe keep a temporary mirror of CPAN files.<br />
This may be a site-wide directory or a personal directory.</p>
<p>First of all, I'd like to create this directory. Where?</p>
<p>CPAN build and cache directory? [/root/.cpan] 直接回车</p>
<p>If you want, I can keep the source files after a build in the cpan<br />
home directory. If you choose so then future builds will take the<br />
files from there. If you don't want to keep them, answer 0 to the<br />
next question.</p>
<p>How big should the disk cache be for keeping the build directories<br />
with all the intermediate files?</p>
<p>Cache size for build directory (in MB)? [10] 直接回车</p>
<p>By default, each time the CPAN module is started, cache scanning<br />
is performed to keep the cache size in sync. To prevent from this,<br />
disable the cache scanning with 'never'.</p>
<p>Perform cache scanning (atstart or never)? [atstart] atstart</p>
<p>To considerably speed up the initial CPAN shell startup, it is<br />
possible to use Storable to create a cache of metadata. If Storable<br />
is not available, the normal index mechanism will be used.</p>
<p>Cache metadata (yes/no)? [yes] 直接回车</p>
<p>The next option deals with the charset your terminal supports. In<br />
general CPAN is English speaking territory, thus the charset does not<br />
matter much, but some of the aliens out there who upload their<br />
software to CPAN bear names that are outside the ASCII range. If your<br />
terminal supports UTF-8, you say no to the next question, if it<br />
supports ISO-8859-1 (also known as LATIN1) then you say yes, and if it<br />
supports neither nor, your answer does not matter, you will not be<br />
able to read the names of some authors anyway. If you answer no, names<br />
will be output in UTF-8.</p>
<p>Your terminal expects ISO-8859-1 (yes/no)? [yes] 直接回车</p>
<p>If you have one of the readline packages (Term::ReadLine::Perl,<br />
Term::ReadLine::Gnu, possibly others) installed, the interactive CPAN<br />
shell will have history support. The next two questions deal with the<br />
filename of the history file and with its size. If you do not want to<br />
set this variable, please hit SPACE RETURN to the following question.</p>
<p>File to save your history? [/root/.cpan/histfile] 直接回车<br />
Number of lines to save? [100] 直接回车</p>
<p>The CPAN module can detect when a module that which you are trying to<br />
build depends on prerequisites. If this happens, it can build the<br />
prerequisites for you automatically ('follow'), ask you for<br />
confirmation ('ask'), or just ignore them ('ignore'). Please set your<br />
policy to one of the three values.</p>
<p>Policy on building prerequisites (follow, ask or ignore)? [ask] ask</p>
<p>The CPAN module will need a few external programs to work properly.<br />
Please correct me, if I guess the wrong path for a program. Don't<br />
panic if you do not have some of them, just press ENTER for those. To<br />
disable the use of a download program, you can type a space followed<br />
by ENTER.</p>
<p>Where is your gzip program? [/bin/gzip] 直接回车<br />
Where is your tar program? [/bin/tar] 直接回车<br />
Where is your unzip program? [/usr/bin/unzip] /直接回车<br />
Where is your make program? [/usr/bin/make] 直接回车<br />
Where is your links program? [/usr/bin/links] 直接回车<br />
Where is your wget program? [/usr/bin/wget] 直接回车<br />
Where is your ncftp program? [/usr/bin/ncftp] 直接回车<br />
Where is your ftp program? [/usr/kerberos/bin/ftp] 直接回车<br />
Where is your gpg program? [/usr/bin/gpg] 直接回车<br />
What is your favorite pager program? [/usr/bin/less] 直接回车<br />
What is your favorite shell? [/bin/bash] 直接回车</p>
<p>Every Makefile.PL is run by perl in a separate process. Likewise we<br />
run 'make' and 'make install' in processes. If you have any<br />
parameters (e.g. PREFIX, LIB, UNINST or the like) you want to pass<br />
to the calls, please specify them here.</p>
<p>If you don't understand this question, just press ENTER.</p>
<p>Parameters for the 'perl Makefile.PL' command?<br />
Typical frequently used settings:</p>
<p>PREFIX=~/perl       non-root users (please see manual for more hints)</p>
<p>Your choice:  [] 直接回车<br />
Parameters for the 'make' command?<br />
Typical frequently used setting:</p>
<p>-j3              dual processor system</p>
<p>Your choice:  [] 直接回车<br />
Parameters for the 'make install' command?<br />
Typical frequently used setting:</p>
<p>UNINST=1         to always uninstall potentially conflicting files</p>
<p>Your choice:  [] 直接回车</p>
<p>Sometimes you may wish to leave the processes run by CPAN alone<br />
without caring about them. As sometimes the Makefile.PL contains<br />
question you're expected to answer, you can set a timer that will<br />
kill a 'perl Makefile.PL' process after the specified time in seconds.</p>
<p>If you set this value to 0, these processes will wait forever. This is<br />
the default and recommended setting.</p>
<p>Timeout for inactivity during Makefile.PL? [0] 直接回车</p>
<p>If you're accessing the net via proxies, you can specify them in the<br />
CPAN configuration or via environment variables. The variable in<br />
the $CPAN::Config takes precedence.</p>
<p>Your ftp_proxy?<br />
Your http_proxy?<br />
Your no_proxy?<br />
You have no /root/.cpan/sources/MIRRORED.BY<br />
I'm trying to fetch one<br />
CPAN: LWP::UserAgent loaded ok<br />
Fetching with LWP:<br />
ftp://ftp.perl.org/pub/CPAN/MIRRORED.BY</p>
<p>Now we need to know where your favorite CPAN sites are located. Push<br />
a few sites onto the array (just in case the first on the array won't<br />
work). If you are mirroring CPAN to your local workstation, specify a<br />
file: URL.</p>
<p>First, pick a nearby continent and country (you can pick several of<br />
each, separated by spaces, or none if you just want to keep your<br />
existing selections). Then, you will be presented with a list of URLs<br />
of CPAN mirrors in the countries you selected, along with previously<br />
selected URLs. Select some of those URLs, or just keep the old list.<br />
Finally, you will be prompted for any extra URLs -- file:, ftp:, or<br />
http: -- that host a CPAN mirror.</p>
<p>(1) Africa<br />
(2) Asia<br />
(3) Central America<br />
(4) Europe<br />
(5) North America<br />
(6) Oceania<br />
(7) South America<br />
Select your continent (or several nearby continents) [] 2<br />
Sorry! since you don't have any existing picks, you must make a<br />
geographic selection.</p>
<p>(1) China<br />
(2) Hong Kong<br />
(3) Indonesia<br />
(4) Israel<br />
(5) Japan<br />
(6) Republic of Korea<br />
(7) Russia<br />
(8) Singapore<br />
(9) Taiwan<br />
(10) Thailand<br />
(11) Turkey<br />
(12) Viet Nam<br />
Select your country (or several nearby countries) [] 1<br />
Sorry! since you don't have any existing picks, you must make a<br />
geographic selection.</p>
<p>(1) ftp://www.perl87.cn/CPAN/<br />
(2) http://mirrors.xueron.com/CPAN/<br />
Select as many URLs as you like (by number),<br />
put them on one line, separated by blanks, e.g. '1 4 5' [] 1 2</p>
<p>Enter another URL or RETURN to quit: [] 直接回车<br />
New set of picks:<br />
ftp://www.perl87.cn/CPAN/</p>
<p>commit: wrote /usr/lib/perl5/5.8.8/CPAN/Config.pm<br />
Terminal does not support AddHistory.</p>
<p>cpan shell -- CPAN exploration and modules installation (v1.7602)<br />
ReadLine support available (try 'install Bundle::CPAN')</p>
<p>cpan&gt; exit</p>
<p>5、安装perl模块<br />
cat ./docs/CentOS/centos-perl | xargs -I {} perl -MCPAN -e 'install {}'</p>
<p>6、激活另外两个源，用于更新php<br />
# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm<br />
# wget http://rpms.famillecollet.com/el5.i386/remi-release-5-4.el5.remi.noarch.rpm<br />
# rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm<br />
# vi /etc/yum.repos.d/remi.repo<br />
# vi /etc/yum.repos.d/epel.repo<br />
# vi /etc/yum.repos.d/epel-testing.repo<br />
在这三个文件最后添加<br />
priority=1<br />
保存退出</p>
<p>7、使用remi源，安装刚才找不到的软件包<br />
yum --enablerepo=remi install `cat ./docs/CentOS/centos-packages`</p>
<p>8、删除sendmail<br />
# yum -y remove sendmail</p>
<p>9、删除 mysql-5.0.45-7.el5<br />
# yum -y remove mysql-5.0.45-7.el5</p>
<p>这里记住它删除了那些包，呆会用remi源重新安装跟MySQL相关的软件包<br />
至于为什么要删除，因为yum --enablerepo=remi update php*时，会安装一个依赖包mysql-libs-5.1.34-1.el5.remi.i386.rpm<br />
这个包与mysql-5.0.45-7.el5冲突，所以要卸载mysql-5.0.45-7.el5。<br />
用新源重新安装<br />
# yum --enablerepo=remi install mysql amavisd-new libdbi-dbd-mysql mod_auth_mysql mysql-server perl-DBD-MySQL php-mysql proftpd-mysql mysql-devel postgresql-devel</p>
<p>10、ispCP安装文档说CentOS官方源里的PHP有问题，所以这里需要更新PHP<br />
# yum --enablerepo=remi update php*</p>
<p>11、安装Courier IMAP server<br />
由于INSTALL安装文档中所给出的地址已经失效，我们手动创建相关rpm包<br />
# yum -y --enablerepo=remi install libtool*<br />
# yum -y --enablerepo=remi install gamin-devel<br />
# useradd -m -s /bin/bash compileuser<br />
# passwd compileuser<br />
# visudo</p>
<p>在root行添加以下内容：<br />
compileuser   ALL=(ALL)       ALL<br />
保存退出</p>
<p># su compileuser<br />
$ mkdir $HOME/rpm<br />
$ mkdir $HOME/rpm/SOURCES<br />
$ mkdir $HOME/rpm/SPECS<br />
$ mkdir $HOME/rpm/BUILD<br />
$ mkdir $HOME/rpm/SRPMS<br />
$ mkdir $HOME/rpm/RPMS<br />
$ mkdir $HOME/rpm/RPMS/i386<br />
$ echo "%_topdir $HOME/rpm" &gt;&gt; $HOME/.rpmmacros<br />
$ cd /tmp<br />
$ wget http://prdownloads.sourceforge.net/courier/courier-authlib-0.62.1.tar.bz2<br />
$ wget http://prdownloads.sourceforge.net/courier/courier-imap-4.4.1.tar.bz2<br />
$ sudo rpmbuild -ta courier-authlib-0.62.1.tar.bz2<br />
$ cd $HOME/rpm/RPMS/i386<br />
$ sudo rpm -Uvh courier-authlib-0.62.1-1.i386.rpm courier-authlib-userdb-0.62.1-1.i386.rpm<br />
$ cd /tmp<br />
$ rpmbuild -ta courier-imap-4.4.1.tar.bz2<br />
$ cd $HOME/rpm/RPMS/i386<br />
$ sudo rpm -ivh courier-imap-4.4.1-1.i386.rpm<br />
退出compileuser，切换为root<br />
$ exit<br />
# groupadd courier -g 3000<br />
# useradd -u 3000 -c 'Courier Mail Server' -d /dev/null -g courier -s /bin/false courier<br />
# service mysqld start<br />
# /usr/bin/mysql_secure_installation</p>
<p>12、安装mod_fcgid<br />
# cd /root/download/<br />
# wget http://centos.karan.org/el5/extras/testing/i386/RPMS/mod_fcgid-2.2-4.el5.kb.i386.rpm<br />
# rpm -Uvh mod_fcgid-2.2-4.el5.kb.i386.rpm</p>
<p>13、删除无用的Apache文件<br />
# rm -f /etc/httpd/conf.d/*</p>
<p>三、安装ispCP OMEGA</p>
<p>1、编译ispCP OMEGA:<br />
# cd /root/download/ispcp-omega-1.0.0<br />
# make -f Makefile.centos install</p>
<p>2、复制生成的目录到系统：<br />
# cp -RLf /tmp/ispcp/* /<br />
# cp -Rv /tmp/ispcp/etc/init.d /etc/rc.d/<br />
# ln -s /etc/rc.d/init.d /etc/init.d<br />
# mkdir /var/mail/virtual</p>
<p>3、配置BIND:<br />
# mv /var/named/data /var/named/data2<br />
# ln -s /var/named/chroot/var/named/data /var/named/data<br />
vi /var/named/chroot/etc/named.caching-nameserver.conf after line:<br />
在include "/etc/named.rfc1912.zones";后添加以下内容</p>
<p>include "/etc/named-ispcp.conf";</p>
<p>保存退出</p>
<p>4、 创建SASL database 目录并配置使Postfix调用SASL的配置文件：<br />
# touch /etc/sasldb2<br />
# mkdir -p /var/spool/postfix/etc<br />
# cp /etc/sasldb2 /var/spool/postfix/etc/sasldb2<br />
# mv /usr/lib/sasl2/smtpd.conf /usr/lib/sasl2/smtpd.conf.OLD<br />
# vi /usr/lib/sasl2/smtpd.conf<br />
添加以下内容：</p>
<p>pwcheck_method: auxprop<br />
auxprop_plugin: sasldb<br />
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5</p>
<p>保存退出</p>
<p>5、添加Apache配置文件:</p>
<p># echo 'include vhosts/*.conf' &gt;&gt; /etc/httpd/conf/httpd.conf<br />
# chown apache:apache /var/www/ispcp/gui/tools/webmail/data</p>
<p>6、安装:<br />
# cd /var/www/ispcp/engine/setup<br />
# perl ispcp-setup</p>
<p>7、设置系统参数:<br />
# chmod 777 /var/www/ispcp/gui/phptmp</p>
<p>8、安装服务:<br />
# chkconfig --add ispcp_daemon<br />
# chkconfig --add ispcp_network<br />
# chkconfig --levels 345 ispcp_daemon on<br />
# chkconfig --levels 345 ispcp_network on<br />
# service ispcp_daemon start<br />
# service ispcp_network start</p>
<p>9、清楚临时文件目录，安装完成:<br />
# rm -R /tmp/ispcp</p>
<p>至此安装完成，此时需要做的工作是service iptables save，否则，防火墙或系统重启，ispCP所生成的规则会丢失。</p>
<p>四、主要参考资料：<br />
1、ispcp-omega安装包里的安装手册<br />
2、http://www.howtoforge.com/perfect-server-centos-5.2-ispconfig-3-p4</p>
<p>五、一些提示：<br />
1、yum安装都需要比较长的时间，yum那里有个小窍门，当源比较慢时，可以按下Ctrl+c，这样yum会尝试另外一个源，如果一直慢，就再Ctrl+c,总有个源是比较快的，如果这样做了，yum只会下载所有的包，不会安装，所以需要重新运行下yum install `cat ./docs/CentOS/centos-packages`，这时候才会安装</p>
<p>2、DNS功能暂时只能在localhost用，因为以下：<br />
Modify /var/named/chroot/etc/named.caching-nameserver.conf according your needs (default it binds only to localhost)</p>
<p>3、ispcp的配置文件在：/etc/ispcp/ispcp.conf，将管理所用的域名改为了IP地址，phpMyAdmin可以实现免密码自动登录，哈哈。</p>
<p>4、刚访问http://www.thatfleminggent.com/，发现是软件包更新了，courier相关包可以到上面下载</p>
<p>http://www.thatfleminggent.com/packages/centos/5/i386/repoview/</p>
<p>5、登录进后台<br />
settings--Internationalisation--Install new languages选择本地的语言文件，点击Install，<br />
Install languages哪里，选择简体中文(Chinese Simplified)，点击Save，再随便点击任何一个链接，界面就变成中文了</p>
<p>6、此方法同样适用于CentOS5.3</p>
<p>7、ispcp邮局问题请参考这篇文章：<a href="http://www.187299.com/archives/1049" target="_blank">http://www.187299.com/archives/1049</a></p>
<p>8、Proftpd启动失败及登录失败请参考这篇文章：</p>
<p><a href="http://www.187299.com/archives/1052" target="_blank">http://www.187299.com/archives/1052</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.187299.com/archives/435/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>发信去Gmail问题</title>
		<link>http://www.187299.com/archives/104</link>
		<comments>http://www.187299.com/archives/104#comments</comments>
		<pubDate>Wed, 15 Apr 2009 07:16:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Postfix]]></category>

		<guid isPermaLink="false">http://www.momati.net/archives/104</guid>
		<description><![CDATA[This is the Postfix program at host www.example.net. I'm sorry to have to inform you that the message returned below could not be delivered to one or more destinations. For further assistance, please send mail to &#60;postmaster&#62; If you do so, please... ]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: small;">This is the Postfix program at host www.example.net.</span></p>
<p><span style="font-size: small;">I'm sorry to have to inform you that the message returned<br />
below could not be delivered to one or more destinations.</span></p>
<p><span style="font-size: small;">For further assistance, please send mail to &lt;postmaster&gt;</span></p>
<p><span style="font-size: small;">If you do so, please include this problem report. You can<br />
delete your own text from the message returned below.</span></p>
<p><span style="font-size: small;"><span id="more-104"></span><br />
</span></p>
<p><span style="font-size: small;"> The Postfix program</span></p>
<p><span style="font-size: small;">&lt;lam5566@gmail.com&gt;: host gmail-smtp-in.l.google.com[209.85.143.114] said:<br />
550-5.7.1 [220.122.76.91] The IP you're using to send mail is not<br />
authorized to 550-5.7.1 send email directly to our servers. Please use the<br />
SMTP relay at your 550-5.7.1 service provider instead. Learn more at<br />
http://mail.google 550 5.7.1 .com/support/bin/answer.py?answer=10336<br />
a14si240039tia.7 (in reply to end of DATA command)</span></p>
<p><span style="font-size: small;">Reporting-MTA: dns; www.example.net<br />
Arrival-Date: Tue, 14 Apr 2009 13:03:51 +0800 (CST)</span></p>
<p><span style="font-size: small;">Final-Recipient: rfc822;lam5566@gmail.com<br />
Action: failed<br />
Status: 5.0.0<br />
Diagnostic-Code: X-Postfix; host gmail-smtp-in.l.google.com[209.85.143.114]<br />
said: 550-5.7.1 [220.122.76.91] The IP you're using to send mail is not<br />
authorized to 550-5.7.1 send email directly to our servers. Please use the<br />
SMTP relay at your 550-5.7.1 service provider instead. Learn more at<br />
http://mail.google 550 5.7.1 .com/support/bin/answer.py?answer=10336<br />
a14si240039tia.7 (in reply to end of DATA command)</span></p>
<p>昨天用公司的邮件服务器发信到Gmail，被退信，退信原因如上所述，网上搜索了一下，发现这篇文章<br />
这是解决办法一：<br />
轉換到 Google Apps, localhost信寄不出去的解法</p>
<p><span style="font-size: small;">自從之前轉換到Google Apps後, localhost的信就寄不出去,昨天花點時間解決掉,解法很簡單,果然是自己耍豬頭 XD</span></p>
<p><span style="font-size: small;">剛開始查就是看 Mail Log, 和被退的信, 發現被退的信大概寫如下:</span></p>
<p><span style="font-size: small;"> The IP you're using to send email is not authorized<br />
550-5.7.1 to send email directly to our servers.<br />
Please use 550 5.7.1 the SMTP relay at your service provider instead.</span></p>
<p><span style="font-size: small;">然後不假思索的就拿這些 keyword 去找, 然後找到的意思是, 查看看自己的 IP 是不是進了 Spam List, 然後算算看進 spam list 有沒有很多... (原來有這麼多家在做 spam list),再來去請他們解開 spam 清單, 查 spam list 可由下兩個網站查(基本上查到的地方都一樣):</span></p>
<p><span style="font-size: small;"> * DNS Stuff Tools<br />
* 郵件系統常用查詢工具 </span></p>
<p><span style="font-size: small;">然後試一試, 還是沒有什麼用處, 一樣寄不出去, 後來想想, 查查是不是被自己給擋掉了, 於是把 spam filter都先拿掉, 還是不行~</span></p>
<p><span style="font-size: small;">再直接 telnet localhost 25 port, 來寄信試試:</span></p>
<p><span style="font-size: small;"> helo USERNAME<br />
mail from:USERNAME@DOMAIN_NAME<br />
rcpt to:GMAIL_USERNAME@gmail.com;<br />
data<br />
subject:test<br />
test<br />
.<br />
quit</span></p>
<p><span style="font-size: small;">結果 localhost 寄信出去很正常, 於是就知道自己錯在哪邊了. XD</span></p>
<p><span style="font-size: small;">解法: </span></p>
<p><span style="font-size: small;"> 1. vim /etc/postfix/main.cf<br />
2. 將 mydestination = DOMAIN_NAME, localhost 改成 mydestination = localhost, DOMAIN_NAME 即可.</span></p>
<p><span style="font-size: small;">DOMAIN_NAME 請換成你自己的 DOMAIN_NAME, 或者直接拿掉即可, 主要是透過 localhost 發信, 所以 localhost 要擺前面.</span></p>
<p><span style="font-size: small;">主要是因為 Google Apps 設定轉換時, 已經把 DOMAIN_NAME的 MX 指到 gmail去了,而那行設定信就往 gmail smtp跑, 沒開放 open relay,當然就寄不出去囉</span></p>
<p><span style="font-size: small;">解决办法二：把Google Apps上的邮件服务删除掉，等一天时间，等Google把相关数据删除掉就可以了，如果不行，就把在Google Apps上所有应用删除掉。</span></p>
<p><span style="font-size: small;"> 大概两个星期前把公司的邮件服务迁移到Google Apps上，Gmail的smtp是要求SSL的，公司某个应用不支持SSL，所以最后只能把邮件服务迁移回来，发信一直没什么问题，直到昨天，想用公司帐号发一份资料到自己的Gmail上才看到这个退信，幸好，把Google Apps上的所有服务都删除后，今天早上回来一测试，OK了。</span></p>
<p><span style="font-size: small;">参考文章：</p>
<p>http://plog.longwin.com.tw/my_note-app-setting/2007/07/06/google_apps_localhost_mail_problem_2007</p>
<p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.187299.com/archives/104/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

