WordPress:Blog by Email

来自站长百科
跳转至: 导航、​ 搜索

模板:Rename

WordPress可以用邮件写文章发送到博客上。要运行这个功能,你需要:

  1. 创建一个单独的电子邮件帐户,只用来给你的博客发送文章。
  2. 设置WordPress接近那个帐户,并且
  3. 设置WordPress发布来自电子邮件帐户的文章

使用最标准的电子邮件软件程序或者一个博客软件-一个专门为通过邮件发送博客文章而设计的程序,你可以通过电子邮件来写博客。

注:WordPress2.2的用户遇到了通过电子邮件发表博客文章的麻烦。已经发布了一个补丁来解决这个问题。


通过电子邮件设置文章[ ]

第一步 – 创建一个电子邮件帐户[ ]

  1. 从管理登录的位置登录到你的博客,你就是使用管理登录 来管理你的WordPress博客。
  2. 转到选项 > 写。
  3. 在页面的底部阅读一下通过电子邮件写博客。在这些说明的结尾,WordPress会给你三串随机排的数字,你可能想使用这些数字作为你创建的电子邮件帐户的注册名。.
  4. 在你的网络主机的邮件服务器或者一个单独的电子邮件服务器上创建一个新的电子邮件帐户,使用提供的数字串中的其中一串(或者你自己的保密的命令)作为用户名(也称作"登录名")。一个邮件服务器代表你来接受电子邮件,并且将电子邮件保存以便于提取。不要为这个帐户使用一些公共的免费的电子邮件服务器像雅虎,Hotmail,等等。
    Note: 强烈推荐你使用一个"保密的" 地址—就是一个很难猜到的电子邮件帐户名而且只有你自己知道这个账户名,例如WordPress建议使用的这些地址。

任何电子邮件发送到这个地址,就会自动地粘贴到你的博客上。但是,要明白,有些电子邮件服务器不允许只含有数字的电子邮件帐户或者由一个数字开始的电子邮件帐户。请与你的网络主机核实一下。

第二步 – 设置WordPress接近你的新帐户[ ]

  1. 当你创建好了新的电子邮件帐户后,返回到写选项面板并且填上你的网络主机供应商使用的电子邮件服务器端口数字(如果你不知道这些,请查阅你的网络主机供应商的常见问题解答或者手册指南页面。端口数字通常是110.)
  2. 然后,为你的新帐户输入登录名e密码 .
    NOTE:在登录名一栏,使用完整的电子邮件地址(例如,user@example.com)。
  3. 给通过电子邮件上交的博客文章,选择一个默认分配的种类。
  4. 点击更新选项

如果在你真正创建电子邮件帐户之前,你使用了写选项 > 通过电子邮件写博客部分来指定电子邮件地址,请记住当你创建帐户时,要使用与你在那个部分规定的登录和密码。

第三步 – 发表你的电子邮件文章[ ]

你已经创建了新的电子邮件帐户而且设置了你的WordPress博客从那个帐户中接受电子邮件,但是你仍然需要设置WordPress来发表你的博客上的这些电子邮件信息。做一下以下中的一步:

动手激活浏览器[ ]

在你向你的新的电子邮件帐户发送了一封电子邮件之后,立马转到以下的链接http://example.com/installdir/wp-mail.php。(注:你每发一封新的文章,都要这样做。)

浏览器自动激活[ ]

与动手激活浏览器相对的方法是在你的博客页脚添加以下的iframe代码:

<iframe src="http://yourblogdomain/wordpressinstalldir/wp-mail.php" name="mailiframe" width="0" height="0" frameborder="0" scrolling="no" title=""></iframe>

编辑上面的代码行,这样它就能指向你的wp-mail.php 文件的位置。将这行代码添加到你使用的任何主题的目录上的footer.php 文件上。(不要放到一个HTML段落中)。

也许你要刷新你的博客以看到新的文章。新用户可能发现这个方法最管用。


如果你为或者是想为WordPress使用Postie插件,使用下面的iframe代码,这个代码会访问Postie的检查邮件命令行:

<iframe src="http://yourblogdomain/wordpressinstalldir/wp-content/plugins/postie/get_mail.php?Submit=Run+Postie" name="mailiframe" width="0" height="0" frameborder="0" scrolling="no" title=""> </iframe>

将这个代码添加到你的页脚上,这样下次任何人访问你的博客的时候,你的新邮件会自动地粘贴上去。这样除了发送邮件外,你什么也不要做。你也许要刷新博客看看发生的变化。

WP-Cron 插件激活[ ]

下载,安装,激活WP-Cron插件。它会在没有用户干涉的幕后工作,每15分钟更新一下你的站点。

Cron Job 激活[ ]

设置一个UNIX cron任务使你的博客定时性地看http://example.com/installdir/wp-mail.php使用一个命令行像wget, curl 或者GET那样的HTTP中介。要执行的命令可能看起来像:

wget -N http://example.com/installdir/wp-mail.php

如果你使用了一个与wget不同的程序,在这一行中将那个程序和它的论点替换为wget

注:另一种可能性是在一个cron job中运行"php /full/path/to/wp-mail.php"。这个会使用php来运行php-script,不需要一个额外的程序来运行。(你更可能被授权来运行php而不是wget)

更多的关于设置一个cron任务的信息,请看:

  • 你的主机供应商的常见问题或者手册页面

Windows 用户注意:如果你的主机运行Windows,有与cron相似的程序。例如,可视的Cron, Windows 的Cronpycron.更多信息,请参考一下这些项目的文件。

Procmail 激活[ ]

如果你的服务器使用 procmail,博客邮件帐户首页目录上一个简单的 .procmailrc 就足够了:

Shell=/bin/sh<br> MAILDIR=$HOME/.maildir/ DEFAULT=$MAILDIR :0 { :0Wc ./ :0 | wget -N http://example.com/installdir/wp-mail.php }

这个可能更加地详细和明确,例如夺取一些特殊的主题表述。更多信息请查看procmail

.qmail 激活[ ]

如果你的服务器使用qmail来处理一个电子邮件,无论何时一封电子邮件发送了,你都可以用它来访问wp-mail.php。要做到这一点,首先创建一个小的shell脚本来访问wp-mail.php。你可以访问文件wp-mail:

  1. !/bin/sh
/bin/sh -c "sleep 5; /path/to/php /path/to/your/blog/wp-mail.php > /dev/null" &

sleep命令行,在允许qmail在wp-mail.php被访问之前完成处理信息,造成了5秒钟的延误。注意行结尾的&是必须的。以上的脚本应该归入到你的根目录上,而且执行的位应该设置为(chmod 700)。为了调适,你可以将/dev/null改为一个文件名,将由wp-mail.php产生的输出保存起来。

然后你所要做的就是创建/更改合适的.qmail文件来访问你的shell脚本。为你的邮箱名的.qmail 文件加上以下这一行:

/path/to/your/root/directory/wp-mail

看看.qmail 文件的你的ISP的文件使用。不同的ISPs命名传统可能不同。

邮件格式[ ]

WordPress会将你的邮件的主题名作为文章的标题,邮件的所有部分会被用作文章的内容,除去普通的HTML 标签。WordPress会将第一步中任何选为"通常的 种类"中的种类下的文章归档,并且使用站点管理作为发送器。

你的邮件中的任何图像和附件都会被发送进来。

测试[ ]

测试你的配置,只要向yournewaccount@yourmaildomain (或者向 user@yourmaildomain 如果你使用.qmail 推进的配置)发送一封电子邮件。然后做下面的步骤:

  • 如果你没有设置自动系统,只要在你的浏览器中看看http://example.com/installdir/wp-mail.php。脚本会告诉你它发现了一封电子邮件,并且印出了文章的详细信息。然后再次看看你的博客,看看粘贴进的邮件。
  • 如果你在页脚中使用了iframe代码,刷新你的浏览器看看新的文章。
  • 如果你使用WP-Cron,只要等十五或者二十分钟就行了。
  • 如果你在运行一个cron任务,等到它下一次预定运行的时间(或者临时地编辑一下cron任务使它运行地更快)。如果你在一个终端运行后部-f /var/log/cron,当任务完成运行时,你可以看见任务创建的运行日志。每当这种情况发生,只要在你的网络浏览器上看看你的站点,看看你发送发表上去的电子邮件。

疑难解答[ ]

如果你收到了下面的错误信息,遵循以下的步骤。

Error Message:

Ooops POP3: premature NOOP OK, NOT an RFC 1939 Compliant server


对于这一个错误,打开wp-includes/class-pop3.php并且将这一行: if($this->RFC1939) {

改为: if(!$this->RFC1939) {

注意一下那个感叹号。

错误消息: 好像没有什么新的邮件

这个错误有点用词不当-测试只是检查看看有没有什么重新得到了什么东西。

如果你觉得有一点冒险,打开

wp-mail.php

并且搜索:

$count = $pop3->login(get_settings('mailserver_login'), get_settings('mailserver_pass'));

将它下面的行改为:

  if (0 == $count) :
    echo "看起来好像没有什么新邮件。 <br/>\n";
    echo "count = $count<br/> \n"; 
    echo "$pop3->ERROR \n";
    exit;
  endif;


然后你得到一个更详细的讯息。

电子邮件服务器可能会拒绝试着提供一个加密的密码-像POP3的连接。也许你的网络服务器和你的电子邮件服务器都真实地在一台电脑上,你可以将localhost or 127.0.0.1指定为邮箱服务器。假定流量是好的,没有加密,因为它从来不在网络中流经。

扩充和附件[ ]

有几个附件和插件会扩展WordPress通过电子邮件写博客的能力。其中的一些可能包括改变核心文件,因此要仔细地做,同时做文件备份

增强功能性插件[ ]

wp-mail.php文件的替换文件已经创建了:

  • Postie支持向种类发送,自动移动电子邮件签名,POP3/IMAL (+SSL)以及更多的。

破解电子邮件形式[ ]

你的wp-mail.php要做以下的改进,这样你的电子邮件中的文章会被翻译成元数据:


发送者的电子邮件地址:提高了的wp-mail.php在它的用户数据库中查找你发送的电子邮件地址。如果对那儿的用户有一个匹配,它就会把文章归档到那个用户的下面。如果没有匹配,它扔下电子邮件,在博客中也没有创建一篇文章。(对于安全和防止垃圾广告非常强大。)它由From区设置。
主题行:如果你的电子邮件的主题栏中的任何位置上有[n],电子邮件会归档到n号的类别上。否则的话,它就会发送到任何在第一步时为"通常的类别"选择的任何类别上。例如:[1] 这是一个测试! 会以 "这是一个测试!"发送,归档在 通常 下。