Monthly Archives: 7月 2011

レンタルサーバからメール送信した際にgmailで受信しない

レンタルサーバ稼動で、PHPからmb_send_mailするプログラムというのは定番かと思うけど
まれにgmailに対し送信した際に受信してくれない場合がある。

実際に体験したケースとしては、さくらレンタルサーバのスタンダードプランやVPSを利用していて、サイト上のPHPからメール送信
⇒Yahooメールには届くけれども、gmailには届いてくれない。

といったケース。

迷惑メールに分類される分にはまだいいんだけれども、gmail側が一切受信をしてくれないケースもある。

おそらく、サーバに同居している別ユーザがスパム送信などを行って(もしくは乗っ取られてスパムプログラムが動作して)gmailに大量にメールを送信しており
gmail側から「このサーバはスパムなのでメール受信しない」と判定されてしまっているのだと思う。

Yahooメールなど、他のwebメールに比べgmailはこの辺はかなり厳しい印象。

こうなってしまったら基本的には、こちら側はどうする事もできない。

とはいえ、ユーザ会員登録などでメール内に登録キー付きURLを仕込むような仕組みのサイトの場合、かなり致命的な問題となってしまう。

安プランなどで運営している場合は、サーバを移設してIPを変えてやるのが最も手っ取り早い対処となる。
もしくは経験上、数日から数十日ほど放置していると、突然なおったりもする。

段階としては、迷惑送信が停止してから数日から数十日のスパンで
・メール受信自体を拒否が解除
・迷惑メールに分類される事が解除
・通常メールに分類される
といったプロセスで状況が改善されていくらしい。

この辺はgmailのアルゴリズムによる所。

安プランのサーバは手軽な分、変な業者が同居している可能性も高まるので
なかなか判断も難しい所。

予算がある&確実なメール送信を求められているのならメール送信サービスなどを利用するのが間違いなさそう。
でもけっこう高いんだよなぁ・・

SVNでディレクトリを完全削除【Windows】

ローカルWindows環境でsvnを使っているんだけど、間違って1G近いファイルをsvnにコミットしてしまった。
で、単純にdeleteするだけでは履歴が残ったままで何の解決にもならないので、完全にディスク上から削除する方法をメモ。
まずDOS窓から以下のようなコマンドを打つ。

svnadmin dump 【svnディレクトリ】 | svndumpfilter exclude 【消したいsvnパス】 > 【適当なファイル名】

【svnディレクトリ】には、c:\svnなどのディレクトリ名。
【消したいsvnパス】には、/missproject といったようにsvn上のパス
【適当なファイル名】は何でも良い。c:\dumpとでもしておく。

すると、【適当なファイル名】にdumpファイル(バックアップファイル)が出力される。
このファイル内には【消したいsvnパス】で指定したパスに該当するファイル達は既に除外されている。

次に【svnディレクトリ】をディレクトリごと削除、もしくはディレクトリ名を適当な名前に変更する。

で、最後に新しくsvnディレクトリをcreateし、dumpファイルをインポートさせればOK

svnadmin create 【svnディレクトリ】
svnadmin load 【svnディレクトリ】 < c:\dump

要はリポジトリを作り直すって事ね。
ちょっと面倒くさい。

Facebookのiframeページでスクロールを非表示に

なかなかうまくいかなくて、ようやく間違いのなさそうなやり方に至ったのでメモ。

まずはcssでbodyに対して「スクロール出すなよ!?絶対出すなよ!?」と書きます。

body {
	overflow-x: hidden;
	overflow-y: hidden;
}

次に、以下のスクリプトをbodyタグ開始の直後に記述します。
細かくはよくわかりません。深く考えない事が大切です。

<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script> 
<div id="fb-root"></div> 
<script> 
$(function(){
	var pageHeight = $(document).height();
	FB.Canvas.setSize({ height: pageHeight });
	FB.init({   
	    appId  : '【開発者ページで入手できるアプリID】',
	    status : true, // check login status
	    cookie : true, // enable cookies
	    xfbml  : true,  // parse XFBML
	    logging : true
	});
	FB.Canvas.setAutoResize();
})
</script>

これで憎きスクロールバーは一切でなくなるはずです。