WordPress 可以设定使用email帐号来张贴您的blog, 为了开启这个功能, 你需要设定一个专用的email帐号, 设定WordPress, 以其设定你的web 伺服器来让 WordPress 可以定期的检查这个email 帐号.
你可以适用大部分标准的email 软体来张贴或是一种专门用来张贴文章的程式Weblog Client.
概述
- 进到WordPress的网志管理在选项> 撰写 里有透过电子邮件发表文章的设定.
- 新增一个帐号, 它的登录名称跟你在登入画面的名称是一样的.
- 使用下述选项其中一个:
透过电子邮件发表文章的设定
步骤 1 – 设定: 概述
- 用你的管理帐号登录到WordPress的网志管理.
- 进到 选项 > 撰写.
- 在该页底下阅读透过电子邮件发表文章的操作指令. 在这些指令的最后, WordPress 会给你三组随机字串用来作为”透过电子邮件发表文章”的帐号名称(postaccount).
- 你需要在你的email伺服器新增一个”透过电子邮件发表文章”的帐户(postaccount) . 这是你个人email帐户的地方. 不建议你使用公用免费的像是Yahoo, Hotmail, 等等的email服务.
注意: 有些email 伺服器不允许只有数字或开头是数字的email帐户名称.
- 当你在你的email伺服器新增了一个”透过电子邮件发表文章”的帐户(postaccount) 后, 回到Wordpress 选项 > 撰写 那边填入邮件伺服器 的名字以及使用的埠号. (假如你不知道这些, 参考你的web 主机供应商的FAQ 或手册. 埠号通常是 110.)
- 接下来, 输入登入名称及你的”透过电子邮件发表文章”帐户的使用者密码(postaccount).
注意: 登入名称(postaccount) 应改使用完整的像是user@example.com 这样的格式而不只是使用者名称.
- 选择预设邮件发表的分类当邮件送达的时候.
- 按下更新选项这样就完成了!
现在发一封信到你的”透过电子邮件发表文章”的帐户(postaccount). 如果你设定的正确的话, 应该可以完美无缺的运作.
步骤 2 – 新增”透过电子邮件发表文章”的帐户: 提醒
新增”透过电子邮件发表文章”的帐户跟你在网志管理的使用者有相同的名称, 以及相同的密码.
注意: 强烈建议您使用”秘密”的位址 – 也就是说, 这个帐户名称是很难猜出的并且只有你知道. 任何送到这个位址的email都会自动地贴到你的部落格. WordPress 会在你要设定时给你几个不错的名字.
步骤 3 – 启动”透过电子邮件发表文章”的帐户
下面的选项是用来设定email如何被撷取以及WordPress如何释放到部落格的过程.
浏览器启动
当你一送eamil到postaccount@example.com 帐户时, 你就可以在浏览器查看 http://example.com/installdir/wp-mail.php . (注意: 在每次寄送一篇文章时你必须这样做.)
启动外挂
下载, 安装, 以及启动WP-Cron (http://www.skippy.net/blog/2005/05/26/plugin-wp-cron/) 外挂. 启动需要的WP-Cron-Mail 这个外挂. 这个外挂不需要使用者介入就可以在背景执行.
启动工作流程排序
设定工作流程排序来定期查看http://example.com/installdir/wp-mail.php 使用像是wget, curl 或 GET等的命令列式的HTTP agent. 执行的命令像是这样:
wget -N http://example.com/installdir/wp-mail.php
假如你不是使用,换掉程式及它的参数.
注意: 另一种方法, 就是执行”php /full/path/to/wp-mail.php” 在工作流程排序. 这个会使用php执行这个wp-mail.php, 这样就不需要额外的程式来执行. (你可能比较会被授权执行php而不是wget)
设定工作流程排序的更多资讯, 请参阅:
- Intro To Cron Jobs (http://www.unixgeeks.org/security/newbie/unix/cron-1.html)
- Automating tasks with cron services at USAIL (http://www.uwsg.iu.edu/usail/automation/cron.html)
- 你的主机供应商提供的FAQ 或是手册
Windows 的使用者请注意: 假如你的主机是跑Windows的话有另外类似的程式可以来做. 例如,VisualCron (http://www.visualcron.com), Cron for Windows (http://cronw.sourceforge.net/) 和 pycron (http://www.google.com/url?sa=U&start=2&q=http://sourceforge.net/projects/pycron/&e=1102&mr=8,2!619021,!a:sr4). 请进一步参阅这些专案的文件说明.
启动Procmail
假如你的伺服器使用 procmail (http://www.procmail.org/), 在这个帐户的家目录下的.procmailrc 里置入下一行是有用的.
Shell=/bin/sh<br> MAILDIR=$HOME/.maildir/ DEFAULT=$MAILDIR :0 { :0Wc ./ :0 | wget -N http://example.com/installdir/wp-mail.php }
这是比较特殊的, 就像撷取某个主旨的表示式一样. 请查看 procmail (http://www.procmail.org/) 以找到更多的资讯.
电子邮件格式
WordPress 会使用你信件的主旨作为文章的标题, 以及信件的内容作为文章的内文, 一般的HTML 标签会除去. WordPress 会以步骤1所设定的”预设邮件发表的分类”来分类并且使用网站的管理员为张贴的作者.
测试
要测试你的设定, 只要寄email 到postaccount@yourmaildomain (或 user@yourmaildomain 假如你使用 .qmail 转信设定). 然后完成下列事项:
- 假如你没有自动话的系统设定, 就在浏览器查看http://example.com/installdir/wp-mail.php . 这个程式会告诉你是否发现有email, 以及印出它张贴的详细资料. 当你再查看你的部落格时就会发现你的email所张贴的文章.
- 假如你使用WP-Cron, 只要等15或20分钟.
- 假如你有工作流程排序执行的话, 就等到他下次排程的时间来执行(或者暂时编辑工作排程来让他立即执行). 假如你在终端视窗执行tail -f /var/log/cron, 再程式执行后可以看到完成排程时新增的纪录. 当这件事完成时, 可以到你的浏览器看你的email张贴的文章.
疑难排解
错误讯息:
Ooops POP3: premature NOOP OK, NOT an RFC 1939 Compliant server
发生这个错误, 开启 wp-includes/class-pop3.php 并更改这一行:
if($this->RFC1939) {
为下面这一行:
if(!$this->RFC1939) {
注意这个惊叹号.
Error Message: There does not seem to be any new mail
这个错误是误会 – 这个测试只是要检查是否有任何信件抵达.
假如你觉得有点冒险开启
wp-mail.php
并且寻找:
$count = $pop3->login(get_settings('mailserver_login'), get_settings('mailserver_pass'));
在它后面改成下面这样子:
if (0 == $count) : echo "There does not seem to be any new mail. <br/>n"; echo "count = $count<br/> n"; echo "$pop3->ERROR n"; exit; endif;
这样就会出现比较有意义的讯息.
另一个可能(在我的例子中) 就是 mail 伺服器拒绝尝试提供非编码的密码像-POP3的连线. 假如你的webserver 及 email 伺服器在同一台电脑上你可以指定localhost 或127.0.0.1 作为你的mail 伺服器. 这样子的话就不用加密它的 traffic 会假定是OK .
补充事项
有一些补充事项可以扩充WordPress的”透过电子邮件发表文章”的功能. 这些是向有可能需要更改核心档案所以在变更之前请小心的做好备分.
加强功能的程式
取代原来的wp-mail.php:
Email 格式的工具
下面的加强功能可以使你的wp-mail.php 可以被转译成你的文章的metadata:
- 寄送者的 email 位址
- 改良式的wp-mail.php 会去寻找使用者的资料库的email位址. 假如有吻合的使用者, 它就会标示成那个使用者张贴的. 假如没有吻合, 它就会删除这封email并且不会张贴到部落格中. (这是针对安全及防堵垃圾信很棒的做法.) 它是在 From 设定:
- 主旨列
- 假如[n] 出现在你的email的主旨列中, 这封信会被张贴到分类编号 n 中. 不然的话, 它会被张贴到步骤1中的”预设邮件发表的分类”. 例如: [1] This is a Test! 会张贴”This is a Test!”这篇分张在General下.