SQLの窓

2018年04月30日


Python ドキュメントに沿った、テキストファイル読み込みの理解

ソースコードの文字コード

このサンプルでは、ソースコードは SHIFT_JIS を使用しています。( デフォルトでは、Python のソースコードは UTF-8 でエンコードされているものとして扱われます )

※ Python 内で使用される エンコーディングのリスト

# -*- coding: cp932 -*-

try:
	handle = open(r"C:\Users\sworc\Downloads\社員マスタ.csv", "r", encoding="cp932")
except Exception as err:
	print(err)
	quit()

for method in dir(handle):
	if method == "__iter__":
		print(str(type(handle)) + " は for で使える")
		break
else:
	print(str(type(handle)) + " は for で使えない")

for line in handle:
	print(line,end="")


handle.close()

リテラル

ファイルのパスとして使用しているリテラルに、文字 'r' または 'R' をプレフィックスに持つことができます。そのような文字列は raw strings と呼ばれ、バックスラッシュをリテラル文字として扱いますfor 文

for 文は、反復可能なオブジェクト (iterable object) 内の要素に使用できます。

ここでは、組み込み関数の open 関数で取得した ファイルオブジェクト に対して for を実行します。その前に dir 関数 で取得したメソッド一覧の中に __iter__ がある事を確認しています。オブジェクトの中に __iter__ があれば、反復可能な処理が実装されています。

※ break 文が実行されると、 else 節の処理を実行することなくループを終了します

open で取得された ファイルオブジェクト

open() 関数が返す file object の型はモードに依存します。 open() をファイルをテキストモード ('w', 'r', 'wt', 'rt', など) で開くのに使ったときは io.TextIOBase (特に io.TextIOWrapper) のサブクラスを返します。

io.TextIOWrapper > io.TextIOBase > io.IOBase

※ close メソッドは io.IOBase にあります。

その他

str 関数は、オブジェクトを文字列として返します




posted by lightbox at 2018-04-30 20:17 | Python | このブログの読者になる | 更新情報をチェックする

2018年04月24日


Windows10 : Ruby で日本語メール送信

Ruby で正しい情報を収集するのは、他の言語に比べて骨が折れるようです。

今回かなり ISO-2022-JP の MIME 文字列で困りました。まず、NKF.nkf("-WjM", subject) で欲しい文字列は手に入るのですが、渡して実行すると UTF-8 に変換されていました。

また、本文の JIS 作成が良く解らずに調べている途中で、mail-iso-2022-jp の存在を知って余計な時間を使う事をなんとか逃れました。

ソース最後のコメントは、mail ライブラリの smtp.rb の中にあったものですが、シンボルと文字列の違いが最初解らずに納得が行かない時間がちょっとありました。

gem で mail ライブラリ をインストール


ruby 2.4.4p296 (2018-03-28 revision 63013) [x64-mingw32]

C:\Users\sworc>gem install mail
Fetching: mini_mime-1.0.0.gem (100%)
Successfully installed mini_mime-1.0.0
Fetching: mail-2.7.0.gem (100%)
Successfully installed mail-2.7.0
Parsing documentation for mini_mime-1.0.0
Installing ri documentation for mini_mime-1.0.0
Parsing documentation for mail-2.7.0
Installing ri documentation for mail-2.7.0
Done installing documentation for mini_mime, mail after 28 seconds
2 gems installed

C:\Users\sworc>gem install mail-iso-2022-jp
Successfully installed mail-iso-2022-jp-2.0.8
Parsing documentation for mail-iso-2022-jp-2.0.8
Done installing documentation for mail-iso-2022-jp after 0 seconds
1 gem installed
require 'nkf'
require 'pp'
require 'mail'
require 'mail-iso-2022-jp'

# ******************
# メール用変数
# ******************
user = "ユーザ名"
pass = "パスワード"
to = "宛先メールアドレス"

# ******************
# メール内容
# ******************
subject = "日本語の件名"
body = "日本語の\n本文\nです"

mail = Mail.new(charset: "ISO-2022-JP")
mail["from"]  = "わたし <#{user}@#{user}.sakura.ne.jp>"
mail["to"] = "あなた <#{to}>"
mail["subject"] = subject
mail["body"] = body

smtp_server = {
	:address => "#{user}.sakura.ne.jp",
	:port  => 587,
	:domain  => "sakura.ne.jp",
	:user_name => "#{user}@#{user}.sakura.ne.jp" ,
	:password  => pass,
	:authentication  => "plain",
	:enable_starttls_auto  => true
}

# ******************
#Pretty Print
# ******************
pp smtp_server

# ******************
# 個別
# ******************
p smtp_server[:address]
p smtp_server[:port]
p smtp_server[:domain]
p smtp_server[:user_name]
p smtp_server[:password]
p smtp_server[:authentication]
p smtp_server[:enable_starttls_auto]

mail.delivery_method(:smtp, smtp_server )

# ******************
#メール送信
# ******************
begin
	mail.deliver
rescue => e
	p e.message
end


# ******************
# Subject の文字列変換のテスト
# ******************
p NKF.nkf("-WjM", subject)

# ******************
#シンボルと文字列の比較
# ******************
if :login.to_s == "login" then
	p "一致"
end
if "login".to_sym == :login then
	p "一致"
end


# === Sending via GMail
#
#	Mail.defaults do
#	 delivery_method :smtp, { :address			  => "smtp.gmail.com",
#							  :port				 => 587,
#							  :domain				=> 'your.host.name',
#							  :user_name			=> '<username>',
#							  :password			 => '<password>',
#							  :authentication		=> 'plain',
#							  :enable_starttls_auto => true  }
#	end

#DEFAULTS = {
#  :address			  => 'localhost',
#  :port				 => 25,
#  :domain				=> 'localhost.localdomain',
#  :user_name			=> nil,
#  :password			 => nil,
#  :authentication		=> nil,
#  :enable_starttls	  => nil,
#  :enable_starttls_auto => true,
#  :openssl_verify_mode  => nil,
#  :ssl				  => nil,
#  :tls				  => nil,
#  :open_timeout		 => nil,
#  :read_timeout		 => nil
#}


関連する記事

Pleiades Eclipse 4.7 Oxygen で Ruby を使って MySQL にアクセスする

エディタのタブの設定









posted by lightbox at 2018-04-24 20:33 | Ruby | このブログの読者になる | 更新情報をチェックする

2018年04月22日


Python3 でメール送信 ( さくらインターネット )

さくらインターネットのユーザ文字列が埋め込みサンプルとして適しているので使用しました。

デフォルトでは、utf-8 で Subject がエンコードされるので email.charset.Charset クラスのメソッドで iso-2022-jp に変換しています。
Subject: =?utf-8?b?UHl0aG9uIOOBi+OCiSBVVEYtOCDjga7mloflrZfliJc=?=
文字列の埋め込みは f-string です。
# *************************
# 型と内容の確認
# *************************
def typrint(obj):
	print(type(obj))
	print(obj)
	print("")

# *************************
# ライブラリ
# *************************
import smtplib
from email.mime.text import MIMEText
import datetime
from  email.charset import Charset

# *************************
# 日付のテスト
# *************************
# 日付だけ欲しい場合はこちら
today = datetime.date.today()
typrint(today)

# datetime オブジェクトは date オブジェクトおよび time オブジェクトの全ての情報が入っている単一のオブジェクトです。
today = datetime.datetime.today()
typrint(today)

# 書式 : https://docs.python.jp/3/library/datetime.html#strftime-strptime-behavior
strdate = today.strftime("%Y-%m-%d %H:%M:%S")
typrint(strdate)

# *************************
# メール用キャラクタセット
# *************************
jis='iso-2022-jp'

# *************************
# 本文
# *************************
text = "Python\n日本語\nUTF-8\n"
text += "Python文字列操作マスター\nhttps://qiita.com/tomotaka_ito/items/594ee1396cf982ba9887"
text += "https://qiita.com/tomotaka_ito/items/594ee1396cf982ba9887"
text = text.encode(jis)		# iso-2022-jp でテキスト全体をエンコード
typrint(text)
msg = MIMEText(text, 'plain', jis)		# メール送信用データのベースを作成

# *************************
# 送信用情報
# *************************
user = "ユーザ"		# さくらインターネットのユーザ
password = "パスワード"
port = 587
to = "宛先メールアドレス"

# *************************
# メールヘッダ
# *************************
charset = Charset(jis)		# Subject 用エンコードに使用( これをしないと utf-8 が使用される )
msg["Subject"] = charset.header_encode("Python から UTF-8 の文字列 : " + strdate )
msg["From"] = f"{user}@{user}.sakura.ne.jp"
msg["To"] = to

# *************************
# 確認用出力
# *************************
print(msg)

# *************************
# メール送信
# *************************
try:

	smtp_server = smtplib.SMTP(f"{user}.sakura.ne.jp",port)
	smtp_server.starttls()
	smtp_server.login(f"{user}@{user}.sakura.ne.jp", password)
	smtp_server.send_message( msg )
	smtp_server.quit()

	print("メールを送信しました")

except Exception as err:

	print(err)
	print("メール送信に失敗しました" )




▼ 出力結果
<class 'datetime.date'>
2018-04-22

<class 'datetime.datetime'>
2018-04-22 20:30:27.176934

<class 'str'>
2018-04-22 20:30:27

<class 'bytes'>
b'Python\n\x1b$BF|K\\8l\x1b(B\nUTF-8\nPython\x1b$BJ8;zNsA`:n%^%9%?!<\x1b(B\nhttps://qiita.com/tomotaka_ito/items/594ee1396cf982ba9887https://qiita.com/tomotaka_ito/items/594ee1396cf982ba9887'

Content-Type: text/plain; charset="iso-2022-jp"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: =?iso-2022-jp?b?UHl0aG9uIBskQiQrJGkbKEIgVVRGLTggGyRCJE5KODt6TnMbKEIgOiAyMDE4LTA0LTIyIDIwOjMwOjI3?=
From: ユーザ@ユーザ.sakura.ne.jp
To: 宛先メールアドレス

Python
$BF|K\8l(B
UTF-8
Python$BJ8;zNsA`:n%^%9%?!<(B
https://qiita.com/tomotaka_ito/items/594ee1396cf982ba9887https://qiita.com/tomotaka_ito/items/594ee1396cf982ba9887
メールを送信しました



posted by lightbox at 2018-04-22 20:40 | Python | このブログの読者になる | 更新情報をチェックする

VS2010(C#) : TKMP.DLLを使った、メール送信テンプレート

OneDrive へ移動

( TKMP.DLL 同梱 )

※ TKMP.DLL は 32ビット用です。





テンプレートが古いので、Microsoft の SMTP サーバーは pop-mail.outlook.com に変更して下さい

久しぶりにメールの処理の検証をしてみようと、最新(周辺)の Microsoft の Framework をチェックしてみたのですが、相変わらず標準的なものはなさそうなので、最新の TKMP.DLL で検証してみました。TKMP.DLL は運用はした事がありませんが、メール送信に非同期処理が無い事を除いて、たいていは間に合いそうな気がします。

しかし、いかに簡単に使えるように設計されていても、メール処理はそれなりに煩雑なので、単に『メール送信』に特化してクラスを作成しました。

メールは Hotmail でなくても使えますが、送信用のクラスを作成する為のテストに Hotmail を使って行い、Hotmail の特性に従ってエラー処理もしています。

Hotmail を使用する場合は、ひとつ注意が必要で、エラーになる原因としてメールサービスがスパム対策として確認用の画像を読ませいログインさせようとする場合があるようです。
MailClass.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TKMP.Writer;
using TKMP.Net;

namespace TKMP_SendMail_Sakura1 {
	class MailClass {
		private MailWriter mw = null;

		public string SmtpServer { get; set; }
		public int Port { get; set; }
		public string User { get; set; }
		public string Pass { get; set; }
		public AuthenticationProtocols Protocol { get; set; }

		private string err_message = "";

		public class MailClassErrorArg {
			public string Message { get; set; }
		}

		public delegate void MailClassError(MailClassErrorArg e);

		public bool SendMail(string To, string From, string Subject, string Body, string To_J, string From_J, MailClassError mce) {
			bool bResult = true;

			mw = new MailWriter();

			try {
				mw.ToAddressList.Add(To);
			}
			catch (Exception ex) {
				bResult = false;
			}
			if (!bResult) {
				if (mce != null) {
					MailClassErrorArg e = new MailClassErrorArg() { Message = "宛先が正しくありません" };
					mce(e);
				}
				return bResult;
			}

			// From が未指定や正しくない文字列の場合
			try {
				mw.FromAddress = From;
			}
			catch (Exception ex) {
				// ユーザが正しければ、以下のように設定しても『ユーザ名 <メールアドレス>』に変換される
				mw.FromAddress = "______@hotmail.co.jp";
			}

			TextPart tp = new TextPart(Body);
			mw.MainPart = tp;

			if (To_J != null) {
				mw.Headers.Add("To", To_J + " <" + To + ">");
			}
			else {
				mw.Headers.Add("To", To);
			}
			if (From_J != null) {
				mw.Headers.Add("From", From_J + " <" + From + ">");
			}
			else {
				// Hotmail では、自動的に 『ユーザ名 <メールアドレス>』に変換される
				mw.Headers.Add("From", From);
			}

			mw.Headers.Add("Subject", Subject);
			mw.Headers.Add("X-Mailer", "TKMP Version 3.1.2");

			var logon = new TKMP.Net.AuthLogin(User, Pass);
			SmtpClient sc = new SmtpClient(SmtpServer, Port, logon);
			sc.AuthenticationProtocol = Protocol;

			try {
				if (!sc.Connect()) {
					err_message = "接続に失敗しました";
					bResult = false;
				}
				else {
					sc.SendMail(mw);
					sc.Close();
				}
			}
			catch (Exception ex) {
				err_message = ex.Message;
				bResult = false;
			}
			if (!bResult) {
				if (mce != null) {
					MailClassErrorArg e = new MailClassErrorArg() { Message = err_message };
					// このメソッドの引数である、ErrorHandler デリゲートを呼び出す
					mce(e);
				}
			}

			return bResult;
		}

		public bool SendMail(string To, string From, string Subject, string Body, string To_J, string From_J) {
			return SendMail(To, From, Subject, Body, To_J, From_J, null);
		}

		public bool SendMail(string To, string From, string Subject, string Body) {
			return SendMail(To, From, Subject, Body, null, null, null);
		}

	}

}

エラー処理は、引数にデリゲートを渡す仕様にしているので、Java の 引数へのインターフェイス渡しのような感じで『ラムダ式』を使ってその場で記述する事を想定しています。

これによって、細かいエラー情報が必要な場合は記述し、そうでない場合はオーバーロードされた引数の少ないメソッドを使って成功が失敗かだけをチェックすればいいようになっています。
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;
using System.Net;
using TKMP.Writer;
using TKMP.Net;

namespace TKMP_SendMail3
{
	public partial class Form1 : Form
	{
		public Form1()
		{
			InitializeComponent();
		}

		private void button1_Click(object sender, EventArgs e)
		{

			MailClass mc = new MailClass()
			{
				SmtpServer = "smtp.live.com",
				Port = 587,
				User = "ユーザ名@hotmail.co.jp",
				Pass = "パスワード",
				Protocol = AuthenticationProtocols.TLS
			};

			var result = mc.SendMail(
				"宛先メールアドレス",
				"ユーザ名@hotmail.co.jp",
				this.subject.Text,
				this.body.Text,
				null,   // 必要な場合、宛先を日本語で
				null,   // 必要な場合、差出人を日本語で
				(MailClass.MailClassErrorArg _e) =>
				{
					this.error.Text = _e.Message;
				}
			);

			if (result)
			{
				MessageBox.Show("メールを送信しました");
			}

		}

	}
}

Hotmail の仕様に関しては、正式には 『Outlook.com の POP、IMAP、および SMTP の設定』というページにあります

IMAP サーバー名: imap-mail.outlook.com

IMAP ポート: 993

IMAP 暗号化方法: TLS

POP サーバー名: pop-mail.outlook.com

POP ポート: 995

POP 暗号化方法: TLS

SMTP サーバー名: smtp-mail.outlook.com

SMTP ポート: 587

SMTP 暗号化方法: STARTTLS
一般的にどこのメールサービスでも、TLS または SSL と書かれていますが、TLS で 587、SSL で 465 です。( このへんはかなり仕様がわかり難いです / Microsoft は、TLS のみ。Google は、両方。他は SSL のみだったり ) メッセージのソースの様子 ( ソースは GMail で確認するのが一番良さそうです )
From: =?iso-2022-jp?B?GyRCOjk9UD9NGyhCQg==?= <______@hotmail.co.jp>
To: =?iso-2022-jp?B?GyRCMDhAaBsoQkI=?= <______@gmail.com>
Date: Tue, 23 Jul 2013 20:10:15 +0900
MIME-Version: 1.0
Subject: =?iso-2022-jp?B?GyRCN29MPhsoQg==?=
X-Mailer: TKMP Version 3.1.2
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

$BK\J8$N(B
$BFbMF(B

Gmail 用テンプレート

コードは同じですが、smtp サーバーが、『smtp.gmail.com(TLS/587)』になります。ユーザは、Hotmail ではメールアドレスでしたが、Gmail では、ユーザ名部分だけで認証します(メールアドレスでもOKなはずです)。

安全性の低いアプリの許可を『有効』にします

Nifty 用テンプレート

同様に、コードは同じです。smtp サーバーは、『smtp.nifty.com(SSL/465)』になります。ユーザは、NiftyID を使用したメールアドレスを使いますが、From では通常の別名を使用します。

Yahoo 用テンプレート

同様です。smtp サーバーは、『smtp.mail.yahoo.co.jp(SSL/465)』になります。アカウントは、「@yahoo.co.jpより前の部分」となります。

関連する記事

(C#) / VS2010 または VS2012 : TKMP.DLL(3.1.2 または 3.1.8)を使った、『さくらインターネット』用メール送信テンプレート

さくらインターネット用





posted by lightbox at 2018-04-22 11:10 | VS(C#) | このブログの読者になる | 更新情報をチェックする

2018年04月21日


Basp21 を使ったメール送信でバッチ処理用スクリプト比較 : PowerShell / VBScript / PHP

それぞれ特徴がありますが、PHP と VBScript は COM しか扱えませんが、PowerShell は、Framework ベースなので、ついでに COM を扱えるという立場です。テストする意味はあまり無いと思いますが、Basp21 の DLL を直接呼び出して実行も可能でしょうし、VB や C# のコードを書いてそちら側で実行させる事もできますし、さらにその場合は exe 形式にしてしまえるので今までのスクリプトとは少し意味が違ってきています。

関連する記事

PowerShell2.0 : VB.net と C# のコードをビルドして exe を作成する

SMTP サーバーは、さくらインターネットを使用しています

【さくらのメールボックス】基本仕様

PowerShell + Basp21 メール送信

▼ 32 ビットの PowerShell を実行する為、バッチファイルに以下のように記述します
%SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell -NoProfile -ExecutionPolicy Unrestricted "./basp_mail.ps1"
basp_mail.ps1
<#
	オブジェクト作成
#>
$Basp21 = New-Object -ComObject "Basp21"

$user = "ユーザー"
$to = "宛先"
$pass = "パスワード"

$SMTPServer = "$user.sakura.ne.jp:587"
$MailTo = "あなた <$to>"
$MailFrom = "わたし <$user@$user.sakura.ne.jp>"
$MailFrom += "`t$user@$user.sakura.ne.jp:$pass"

$ErrMessage = $Basp21.SendMail(
	$SMTPServer,
	$MailTo,
	$MailFrom,
	"こんにちは",
	"日本語表示`n日本語表示",
	""
)

if ( $ErrMessage -ne "" ) {
	$ErrMessage
}
else {
	"メール送信が終了しました。"
}


VBScript + Basp21 メール送信

▼ mail.bat( 64ビット PC からの実行 )
%systemroot%\syswow64\cscript.exe basp_mail.vbs
basp_mail.vbs
v_user = "ユーザー"
v_to = "宛先"
v_pass = "パスワード"

Set Basp21 = CreateObject( "Basp21" )

SMTPServer = v_user & ".sakura.ne.jp:587"
MailTo = "あなた <" & v_to & ">"
MailFrom = "わたし <" & v_user & "@" & v_user & ".sakura.ne.jp>"
MailFrom = MailFrom & vbTab & v_user & "@" & v_user & ".sakura.ne.jp:" & v_pass

ErrMessage = Basp21.SendMail( _
	SMTPServer, _
	MailTo, _
	MailFrom, _
	"こんにちは", _
	"日本語表示\n日本語表示", _
	"" _
)

if ErrMessage <> "" then
	Wscript.Echo ErrMessage
else
	Wscript.Echo "メール送信が終了しました。"
end if

PHP + Basp21 メール送信

▼ BASP21 に渡すテキストは SHIFT_JIS で、32ビットの PHP で実行します。
<?php
$user = "ユーザー";
$to = "宛先";
$pass = "パスワード";

$Basp21 = new COM( "Basp21" );

$SMTPServer = "$user.sakura.ne.jp:587";
$MailTo = "あなた <$to>";
$MailFrom = "わたし <$user@$user.sakura.ne.jp>";
$MailFrom .= "\t$user@$user.sakura.ne.jp:$pass";

$ErrMessage = $Basp21->SendMail(
	$SMTPServer,
	$MailTo,
	$MailFrom,
	"こんにちは",
	"日本語表示\n日本語表示",
	""
);

if ( $ErrMessage != "" ) {
	print $ErrMessage;
}
else {
	print "メール送信が終了しました。";
}

?>




posted by lightbox at 2018-04-21 21:42 | プログラミング・仕様等 | このブログの読者になる | 更新情報をチェックする

あらためて、XAMPP に入ってる sendmail.exe をバッチファイルから動かして日本語のメールを送信する

XAMPP とは言っても、Pleiades Eclipse 4.7 に同梱されているものを使用しています。

▼ sendmail.exe は、fake sendmail for windows と呼ばれるアプリケーションの事です。
fake sendmail for windows を使って、PHP でごく普通に( mb_send_mail で )メール送信 : Gmail なので ssl(465)

上のリンク先では、作者さんの単純なバッチファイルを実行していましたが、もうちょっときちんと日本語を送れるようにしようと思って整理してみました。

使用する SMTPサーバー

まずは、テストとして Gmail を使用します。sendmail.exe と同じフォルダに sendmail.ini があるので必要な情報を書き込みます。
smtp_server=smtp.gmail.com
smtp_port=465
auth_username=ユーザ@gmail.com
auth_password=パスワード
そして、安全性の低いアプリの許可を『有効』にします Gmail を使用する場合は、この設定を ON にしておく必要があります。とりあえず動作したら、他のメールサーバで再度テストして必要ならばその環境で運用を行います。 fake_sendmail.bat
@ECHO OFF

ECHO From: ユーザ@gmail.com > %TEMP%\temp.mail
ECHO To: 送り先メールアドレス >> %TEMP%\temp.mail
ECHO Subject: =?ISO-2022-JP?B?GyRCJWEhPCVrJE43b0w+JHJGfEtcOGwkR0F3JGwkayRoJCYkS0pRNDkkNyReJDkbKEI=?= >> %TEMP%\temp.mail

REM 以下は改行
ECHO.>> %TEMP%\temp.mail

REM JIS のテキストを追加コピー
COPY %TEMP%\temp.mail /B + jis.txt /B %TEMP%\temp.mail /B > nul

sendmail -t < %TEMP%\temp.mail

REM DEL %TEMP%\temp.mail


※ From: は無くても Gmail を使用しておれば、自動的に補完されるようです。
※ エクスプローラのアドレスバーで %TEMP% と入力すれば出力ファイルを参照できます。
※ Subject の内容は、『テキスト変換サービス』の『メール用』で変換したものです。
※ ECHO. は、コマンドプロンプトでの改行になります。
※ > nul でコピーコマンドのメッセージを抑制しています。
※ copy で追加している jis.txt は、Terapad を使用して JIS で保存したテキストです。


運用で使うのであれば

なんらかの方法で、jis.txt を変更して定期でメールを送る事が可能です。ただし、PC は常に電源が入っていて、タスクスケジューラにこのバッチファイルが登録されている必要があります。

その場合、タスクスケジューラの開始オプションで作業フォルダを指定するか jis.txt をフルパスで指定するかどちらかを選択する必要があります。




posted by lightbox at 2018-04-21 18:49 | Pleiades | このブログの読者になる | 更新情報をチェックする
Seesaa の各ページの表示について
Seesaa の 記事がたまに全く表示されない場合があります。その場合は、設定> 詳細設定> ブログ設定 で 最新の情報に更新の『実行ボタン』で記事やアーカイブが最新にビルドされます。

Seesaa のページで、アーカイブとタグページは要注意です。タグページはコンテンツが全く無い状態になりますし、アーカイブページも歯抜けページはコンテンツが存在しないのにページが表示されてしまいます。

また、カテゴリページもそういう意味では完全ではありません。『カテゴリID-番号』というフォーマットで表示されるページですが、実際存在するより大きな番号でも表示されてしまいます。

※ インデックスページのみ、実際の記事数を超えたページを指定しても最後のページが表示されるようです

対処としては、このようなヘルプ的な情報を固定でページの最後に表示するようにするといいでしょう。具体的には、メインの記事コンテンツの下に『自由形式』を追加し、アーカイブとカテゴリページでのみ表示するように設定し、コンテンツを用意するといいと思います。


※ エキスパートモードで表示しています

アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります

<% if:page_name eq 'archive' -%>
アーカイブページでのみ表示される内容
<% /if %>

<% if:page_name eq 'category' -%>
カテゴリページでのみ表示される内容
<% /if %>

<% if:page_name eq 'tag' -%>
タグページでのみ表示される内容
<% /if %>
この記述は、以下の場所で使用します
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり