201402141209WordPress 自動發佈電子郵件訊息 - Post By Email

 因為某個因素,需要將所收到的電子郵件直接發佈到網頁,當然可以用土法煉鋼的方式處理,但使用 WordPress 是更優的方式,因為 WP 預設就提供了這項的功能,讓你輕鬆轉PO訊息到網頁上。

處理方式:

寄信到某個信箱 xxx@aaa.bbb ->  WordPress 去該信箱收信 -> 信件轉PO到網頁上,然後刪除該信件

注意:因為只要該信箱收到信件,就會自動貼到網頁上,不建議以一般 email 帳號來處理,免得該收到一些OOXX的廣告信,導致有18禁的問題發生。

設定方式:

從你的 wordpress 「http://your_domain/wp_path/wp-admin/」進入管理介面(控制台),「設定」->「寫作」->「透過電子郵件發表文章」,然後依序填入

郵件伺服器
連接埠
登入帳號 : 因為他的提示為「login@example.com」,可能造成誤解,如果你是一般的郵件主機,記得這裡填入你的帳號就可以了,除非你是用 OpenID 或 gmail 或 ymail 之類的,以電子郵件作為當入帳號的,才需要填入完整的 email address。
密碼
預設文章分類

 

 

帳號密碼跟主機設定好了,那什麼時候他會去抓取信件呢?答案是不會 Orz...

手動要求 wp 去抓取信件來轉入
1. 使用瀏覽器連結 「http://your_domain/wp_path/wp-mail.php
2. 在OS環境下執行 「wget -N http://your_domain/wp_path/wp-mail.php

排程執行
1. 把剛剛 wget 那段寫成一個 script ,然後以 crontab 的方式定期執行

在版面樣版 Theme 的 Function 裡去執行
假設你目前版面的樣版是「Careta」,則到路徑 wp_path/wp-content/themes/careta/ 找到 functions.php 然後新增底下這一段

 

add_action( 'shutdown', 'retrieve_post_via_mail' );
function retrieve_post_via_mail() {
	flush(); // Display the page before the mail fetching begins
	if ( get_transient( 'retrieve_post_via_mail' ) ) { 
		return; // The mail has been checked recently; don't check again
	} else { // The mail has not been checked in more than 15 minutes
		do_action( 'wp-mail.php' );
		set_transient( 'retrieve_post_via_mail', 1, 15 * MINUTE_IN_SECONDS ); // check again in 15 minutes.
	}
}

 

 

以上是用 wordpress 的內建功能
---------------------------------------------------
底下是介紹你可以額外安裝「Post By Email」套件

 

要安裝這個套件只需要在「外掛」裡去搜尋 post by email 然後安裝就可以了。使用這個套件並不需要額外設定什麼項目,而且多了底下圖式中,LOG的觀察與及時的驅動檢查,個人覺得很實用。


 

用上述兩個方法之一,就可以讓你收取某人信件,然後自動PO的網站上。

----20141226 updated --------------------------------------------

Q:post-by-email 這個套件預設不認識的 email 來源給「save as drafts」,也就是文章不會預設張貼(publish)而是擱置(pending),得人工手動的將文章的狀態改成發表

解決方法

修改 ~webroot/wordpress/wp-content/plugins/post-by-email/class-post-by-email.php
sudo vi class-post-by-email.php  移動到約 306行的地方,將
$post_status = 'pending';
改成
//$post_status = 'pending';
$post_status = 'publish';

這樣一來即使是不認識的 email address 來源( if ( ! empty( $userdata ) ) ),只要張貼到設定信箱,定期就會將信件內容貼成文章了
缺點:當然是太危險啦~~別人亂寄你就亂PO囉

 

Reference:

 http://codex.wordpress.org/Post_to_your_blog_using_email 

~End

 

回應
Google Search
Google
累積 | 今日
loading......
平均分數:0 顆星
投票人數:0
我要評分:
Google