pinewell's farmer blog 農業と電子工作、ソフトウェア、バイク、車

2013年4月28日

公開ディレクトリのオーナー、権限。cronの設定

Filed under: 育苗管理システム — pinewell @ 11:51 AM

/var/www/motion はオーナー、グループをwww-dataに。motionからも書き込み、実行が必要なため、777に。
# chown -R www-data.wwwdata /var/www/motion
# chmod -R 777 /var/www/motion
diarydir.txtはmotionからも書き換えが可能なように。
# chmod 666 /var/www/motion/diarydir.txt
snapshot,日付のフォルダはmotionが作る。
# chown -R motion.motion 2013
# chown -R motion.motion snapshot

cronの設定
# crontab -e
*/5 * * * * /var/www/motion/bin/gettemp.php -s -m -t >> /var/www/motion/bin/avg.log 2>&1
22 5 * * * /var/www/motion/bin/getforecast.php > /dev/null 2>&1
0 8,12,16 * * * /usr/bin/lwp-request http://localhost:8070/0/action/snapshot > /dev/null 2>&1
22 0 * * * /usr/bin/mysqldump -u gettemp -p –password=%パスワード% gettemp > /var/www/motion/gettemp.dmp

1行めは5分おきに現在温度を取得、データベースに保存、警告メールの送信までを行うスクリプト。
2行めは05:22に天気予報データを取得するスクリプト。
3行めは08:00,12:00,16:00に、現在の様子をスナップショットする設定
4行めはデータベースのバックアップ。

2013年4月22日

雪で何もできず・・・。育苗管理システム納品。トラックの車検。

Filed under: 育苗管理システム,農業機械 — pinewell @ 7:00 PM

朝。起きると雪が積もっている・・・。10cmくらい降った?
午後には春小畑にロータリーをかけられるか?と思っていたのだが、
畑はまったく何もできない状態となったので、10:00約束で育苗管理システムを納品。

やはり、液晶ディスプレイは調子が悪い・・。

セッティングやら使い方を説明していると、みるみる晴れてきた。
あんなにあった雪も夕方にはまったく無くなった。

車検に出していたトラックが帰ってきた。
1年しか使っておらず、中古とは思えないタイヤ(夏冬兼用のミックス)を装着して帰ってきた。

車検費用はそれなりにかかったが安くタイヤが手に入ったので満足。

2013年4月13日

no-ip.comの設定

Filed under: 育苗管理システム — pinewell @ 6:41 PM

外部よりアクセス可能とするためにDDNSの設定。
ずいぶん長いこと使用しているno-ip.com。
ここはツールのソースが公開されているため、ls-glなdebianでも使用可能なところが良い。
(他と比較したことは無いのだが)
納品用にひとつ、hostを追加。
ls-glの開発機にてダウンロードしたnoip-duc-linux.tar.gzを展開、make。
できたnoip2と、debian.noip2.shを実機にコピー。
noip2は/usr/local/bin/に、debian.no-ip2.shは/etc/init.d/にnoip2 として。
#noip2 -C でコンフィグファイル作成。
#/etc/init.d/noip2 で実行できればよし。
syslogに
noip2[]:v2.1.9 daemon started with NAT enabled
となっていれば良いのだろう。

2013年4月6日

livedoorの天気情報。

Filed under: 育苗管理システム — pinewell @ 4:24 PM

セットアップの過程で気づいた。

育苗管理システムでは毎朝5:00ころにlivedoorの天気情報サイトに繋いで、

今日の天気をデータベースに取り込んでいたのだが、4月に入って自分用のシステムでも取り込みできていない。

調べてみると、4月から仕様が変わってしまっている。これも対応が必要。

小、修正。

Filed under: 育苗管理システム — pinewell @ 4:22 PM

人様が作ったarduinoのライブラリを小修正。

まず、DHT22用のライブラリ。センサーの読み取りができなかった場合にシリアルポートに”Read Fail”と吐き出すようになっている。

これを何も出力しないように、DHT.cppの2ヶ所の該当行にコメントを入れる。

もう一つ。

どうにもI2CLCDが安定しない。突然画面が消えてしまい、そのままでは復帰しない。

lcd.beginをやり直すと表示されるようになるのだが、そのたびにクリアしてしまいパカパカしてしまう。

I2CLiquidCrystal.cppを眺めていると初期化時にclear();を呼び出している。これをコメント。

必要な時はlcd.begin()の後にlcd.clear()をすれば良しとした。

で、LCDの表示の度にlcd.begin()を呼び出すことにしたら、安定して表示される。不意に消えても復旧が早い。

(そもそも、自分用に作成した時はなんの問題もなかったのだが。電源線・アース線を太くしたのも功を奏したのかも)

 

肝心のmoton以下のワシが作ったphpスクリプト、cプログラムソースは再頒布ができないものも混ざってそうなので

公開はしないことにする。moton.tar.gzとして固めているのでセットアップの都合上、分離が面倒。

必要なヒトがいたらば、部分部分ででも公開しようと思う。

 

サンプルページも作らねばなぁ。

 

2013年4月4日

データベースの作成

Filed under: 育苗管理システム — pinewell @ 2:16 PM

ls-glにログインし、下記を実行。
[crayon]
CREATE DATABASE gettemp;
USE gettemp;
CREATE TABLE `MSI` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`UPTIM` int(11) NOT NULL DEFAULT ‘0’,
`gettemp0` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`gettemp1` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`gettemp2` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`gettemp3` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`Weather` int(11) NOT NULL DEFAULT ‘0’,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=35411 DEFAULT CHARSET=utf8;

CREATE TABLE `HIGHLOW_Y` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`TIM` int(11) NOT NULL DEFAULT ‘0’,
`UPTIM` int(11) NOT NULL DEFAULT ‘0’,
`SensorNo` tinyint(4) NOT NULL DEFAULT ‘0’,
`gettemp` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`kbn` tinyint(4) NOT NULL DEFAULT ‘0’ COMMENT ‘0:High 1:Low’,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `HIGHLOW_M` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`TIM` int(11) NOT NULL DEFAULT ‘0’,
`UPTIM` int(11) NOT NULL DEFAULT ‘0’,
`SensorNo` tinyint(4) NOT NULL DEFAULT ‘0’,
`gettemp` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`kbn` tinyint(4) NOT NULL DEFAULT ‘0’ COMMENT ‘0:High 1:Low’,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `HIGHLOW` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`TIM` int(11) NOT NULL DEFAULT ‘0’,
`UPTIM` int(11) NOT NULL DEFAULT ‘0’,
`SensorNo` tinyint(4) NOT NULL DEFAULT ‘0’,
`gettemp` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`kbn` tinyint(4) NOT NULL DEFAULT ‘0’ COMMENT ‘0:High 1:Low’,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=3580 DEFAULT CHARSET=utf8;

CREATE TABLE `AVGTEMP` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`UPTIM` int(11) NOT NULL DEFAULT ‘0’,
`gettemp0` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`gettemp1` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`gettemp2` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`gettemp3` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=2145 DEFAULT CHARSET=utf8;

CREATE TABLE `MSI_Y` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`UPTIM` int(11) NOT NULL DEFAULT ‘0’,
`gettemp0` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`gettemp1` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`gettemp2` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`gettemp3` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`Weather` int(11) NOT NULL DEFAULT ‘0’,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `MSI_M` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`UPTIM` int(11) NOT NULL DEFAULT ‘0’,
`gettemp0` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`gettemp1` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`gettemp2` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`gettemp3` decimal(5,2) NOT NULL DEFAULT ‘0.00’,
`Weather` int(11) NOT NULL DEFAULT ‘0’,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `forecast` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`UPTIM` int(11) NOT NULL DEFAULT ‘0’,
`w_title` varchar(500) CHARACTER SET utf8 NOT NULL DEFAULT ”,
`w_publictime` varchar(500) CHARACTER SET utf8 NOT NULL DEFAULT ”,
`w_telop` varchar(500) CHARACTER SET utf8 NOT NULL DEFAULT ”,
`w_description` varchar(5000) CHARACTER SET utf8 NOT NULL DEFAULT ”,
`w_temp_max` varchar(100) CHARACTER SET utf8 NOT NULL DEFAULT ”,
`w_temp_min` varchar(100) CHARACTER SET utf8 NOT NULL DEFAULT ”,
`w_img` char(255) CHARACTER SET utf8 NOT NULL DEFAULT ”,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=448 DEFAULT CHARSET=utf8;

GRANT ALL PRIVILEGES ON *.* TO ‘gettemp’@’localhost’ IDENTIFIED
BY ‘%パスワード%’ WITH GRANT OPTION;
[/crayon]
実際はdatabase.sqlなどとファイルにしておいて、
#mysql -p -u root < database.sql として実行。

arduinoのスケッチ。

Filed under: 育苗管理システム — pinewell @ 8:57 AM

arduinoをLS-GLに収納する前に。
arduinoIDEの設定。
arduinoIDEをインストールしたlibrariesフォルダに以下の4ファイルを展開する。
OneWire.zip (DHT22で使用)
DHT-sensor-library-master.zip(DHT22用)
Arduino-Temperature-Control-Library-master.zip(DS18B20用)
I2CLiquidCrystal-1.1.zip(I2C液晶)
実際にはArduinoIDE起動時にフォルダ名がヤバくて使えない旨表示されるので適度にフォルダ名を変更。

以下が、スケッチ。
[crayon]
//
// 温湿度センサ DHT22(StraberryLinux品番:RHT03 メーカー品番:SEN-10167)
// と、DS18B20を用いて温湿度・温度を取得するスケッチ。
// タクトスイッチの動作でLED照明ON、シリアルポートに現在温度出力
// 2013/03/29 Ver1.0
//
//
// I2CLCDはA4(SDA)とA5(SCL)に接続
// DHT22 は 2pin
//
#include “DHT.h”
#include
#include

#include
#include

#define ONE_WIRE_BUS 10 //DS18B20の接続ピン
#define TEMPERATURE_PRECISION 9 // 分解能?

#define DHTPIN 2 // what pin we’re connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302)

#define LEDINT 10 //LED照明の点灯している時間
#define MAXWRITECOUNT 50 //シリアルポートに出力する回数

//DHTの初期化
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
// arrays to hold device addresses
//センサーの定義  インサイド、アウトサイド
DeviceAddress insideThermometer, outsideThermometer;

int sensCnt = 0; //DHT22以外のDS18B20のセンサー数 (セットアップ時に自動で検出される)
float temp0 = 99.9;
float temp1 = 99.9;
float h = 99.9;
float t = 99.9;

const int ledPin = 3; //LED
const int buttonPin = 13; //動作スイッチ

int i = 0; //LED照明の点灯時間用
int buttonState = 0; // variable for reading the pushbutton status
boolean ledSts = false;

int writecnt = 0; //シリアルポートに温度・湿度を出力する回数用

DHT dht(DHTPIN, DHTTYPE);

I2CLiquidCrystal lcd(30, true);
//I2CLiquidCrystal lcd(20, false);
// | +— set true if the power suply is 5V, false if it is 3.3V
// +——– contrast (0-63)

void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
digitalWrite(buttonPin,LOW);

dht.begin();
lcd.begin(16, 2);

// Start up the library
// 繋がっているDS18B20の数を検出
sensors.begin();
sensCnt=sensors.getDeviceCount();
switch (sensCnt) {
//センサーのアドレスを取得
case 0:
break;
case 1:
sensors.getAddress(insideThermometer,0);
sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);
break;
case 2:
sensors.getAddress(insideThermometer,0);
sensors.getAddress(outsideThermometer,1);
sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);
sensors.setResolution(outsideThermometer, TEMPERATURE_PRECISION);
break;
default:
break;
}
}

void loop() {

// proc light (on || off)
if (i == 0) {
// turn LED off:
// LED消灯
digitalWrite(ledPin,LOW);

//スイッチの状態を取得
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
// turn LED on:
// LEDの点灯
ledSts = true;

digitalWrite(ledPin, HIGH);
i++;
}

} else {
if (ledSts) {
//LEDが点灯している
//スイッチが押されてLEDが点灯している間は
//シリアルポートに現在温度と湿度を出力
i++;
if (isnan(t)) { t=99.99;}
if (isnan(h)) { h=99.99;}
Serial.print(“H:”);
Serial.print(h);
Serial.print(“%\t”);
Serial.print(“T0:”);
Serial.println(t);

if (i> LEDINT ) {
//設定したLEDの点灯時間が過ぎたら消灯
// turn LED off:
ledSts=false;
i=0;
digitalWrite(ledPin,LOW);

}
}
}

//DHT22から温度、湿度を取得
h=99.9;
t=99.9;
h = dht.readHumidity();
t = dht.readTemperature();
if (isnan(t) || isnan(h)) {
lcd.setCursor(0,0);
lcd.print(“Failed to read”);
} else {
lcd.setCursor(0,0);
lcd.print(“H:”);
lcd.print(h);
lcd.print(“%”);
lcd.print(“T:”);
lcd.print(t);
lcd.print(“C”);
}

//センサーの数分、DS18B20から温度を取得
switch (sensCnt) {
case 0:
break;
case 1:
sensors.requestTemperatures();
temp0=sensors.getTempC(insideThermometer);
lcd.setCursor(0,1);
lcd.print(temp0);
lcd.print(“C”);
break;
case 2:
sensors.requestTemperatures();
temp0=sensors.getTempC(insideThermometer);
temp1=sensors.getTempC(outsideThermometer);
lcd.setCursor(0,1);
lcd.print(temp0);
lcd.print(“C / “);
lcd.print(temp1);
lcd.print(“c”);
break;
default:
break;
}

int inputchar; //シリアルポートからの指示
inputchar = Serial.read(); //シリアルからの値を読み込む
if(inputchar != -1) { //値が入っていたら
switch(inputchar){
case ‘i’: //init

sensors.begin();
sensCnt=sensors.getDeviceCount();
switch (sensCnt) {
//センサーのアドレスを取得
case 0:
break;
case 1:
sensors.getAddress(insideThermometer,0);
sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);
break;
case 2:
sensors.getAddress(insideThermometer,0);
sensors.getAddress(outsideThermometer,1);
sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);
sensors.setResolution(outsideThermometer, TEMPERATURE_PRECISION);
break;
default:
break;
}
case ‘s’: //
lcd.begin(16, 2);
break;
case ‘a’: //
break;
case ‘r’: //
break;
case ‘g’: //温度取得
writecnt=1;
break;
case ‘l’: //ON light
ledSts = true;
digitalWrite(ledPin, HIGH);
i++;
break;
}
}

if (writecnt >0 ) {
//シリアルポートに温湿度を出力
if (isnan(t)) { t=99.99;}
if (isnan(h)) { h=99.99;}
Serial.print(“H:”);
Serial.print(h);
Serial.print(“%\t”);
Serial.print(“T0:”);
Serial.print(t);

switch(sensCnt) {
case 0:
Serial.println(“”);
break;
case 1:
Serial.print(“\t”);
Serial.print(“T1:”);
Serial.println(temp0);
break;
case 2:
Serial.print(“\t”);
Serial.print(“T1:”);
Serial.print(temp0);
Serial.print(“\t”);
Serial.print(“T2:”);
Serial.println(temp1);
}
writecnt++;
if(writecnt > MAXWRITECOUNT) {
writecnt=0;
}
}
}
[/crayon]
ソースではタクトスイッチに連動してLEDを点灯(実際はPOWER-MOS-FETでリレーして12VのLED照明)できるように
しているが、あまり使用頻度が無いので割愛。ソースはそのままでも問題無し。

2013年4月3日

motionの設定、motion.conf。

Filed under: 育苗管理システム — pinewell @ 6:59 PM

おもむろにUSBカメラを挿す。
Apr 3 18:12:23 debian kernel: [ 5233.184994] usb 2-1: new high speed USB device using orion-ehci and address 2
Apr 3 18:12:24 debian kernel: [ 5233.775622] usb 2-1: New USB device found, idVendor=2084, idProduct=0009
Apr 3 18:12:24 debian kernel: [ 5233.855986] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Apr 3 18:12:24 debian kernel: [ 5233.941562] usb 2-1: Product: BUFFALO BSW20K06H USB PC Camera
Apr 3 18:12:24 debian kernel: [ 5234.011446] usb 2-1: Manufacturer: Syntek
Apr 3 18:12:24 debian kernel: [ 5234.059473] usb 2-1: SerialNumber: STK00001
Apr 3 18:12:24 debian kernel: [ 5234.113725] usb 2-1: configuration #1 chosen from 1 choice
Apr 3 18:12:25 debian kernel: [ 5234.580160] Linux video capture interface: v2.00
Apr 3 18:12:25 debian kernel: [ 5234.721386] uvcvideo: Found UVC 1.00 device BUFFALO BSW20K06H USB PC Camera (2084:0009)
Apr 3 18:12:25 debian kernel: [ 5234.857449] input: BUFFALO BSW20K06H USB PC Camer as /devices/platform/orion-ehci.1/usb2/2-1/2-1:1.0/input/input0
Apr 3 18:12:25 debian kernel: [ 5234.983617] usbcore: registered new interface driver uvcvideo
Apr 3 18:12:25 debian kernel: [ 5235.057385] USB Video Class driver (v0.1.0)
これがでてくれば認識OK。
/dev/video0ができているはず。

motionの動作確認。
最低限、/etc/motion/motion.confの

webcam_localhost on をコメントアウトし、
webcam_localhost offにする。

#motion
これでデーモンモードじゃない状態で起動。いろいろ出てくる。
適当なブラウザで http://%LS-GLのIP%:8081/ で画像が見ているはず。

動くことが確認できたら、
#vi /etc/motion/motion.conf

daemon off を daemon on
width 320 -> 640
height 240 -> 480
framerate 2 -> 100
auto_brightness off -> on
brightness 0 -> 127
ffmpeg_cap_new on -> off
locate off -> on

target_dir /tmp/motion -> target_dir /var/www/motion
snapshot_filename %v-%Y%m%d%H%M%S-snapshot -> snapshot_filename snapshot/%Y%m%d%H%M%S-%v-%q-snapshot
jpeg_filename $v-%Y%m%d%H%M%S-%q -> jpeg_filename %Y/%m/%d/%H%M%S-%v-%q
webcam_quality 50 -> 100
control_port 8080 -> 8070
control_localhost on -> off
; on_picture_save value -> on_picture_save /var/www/motion/bin/indexcopy.php %f

ディレクトリはあらかじめ作っておこう。
#mkdir /var/www/motion
#chmod 777 /var/www/motion

で、動くことが確認できたら
#vi /etc/default/motion
start_motion_daemon=no -> yes

rc.local、inittab、lighttpd、php5、mysql、smartmontools、forwardの設定

Filed under: 育苗管理システム — pinewell @ 5:57 PM

準備できた音、シリアルポートのttyS0のパーミッション・設定
液晶表示の初期化
#vi /etc/rc.local

chmod 666 /dev/ttyS0 >> /dev/null
/bin/stty -F /dev/ttyS0 9600 >> /dev/null
/bin/echo ‘s’ > /dev/ttyS0
/usr/sbin/microapl -a bz_on finepix

exit 0

/dev/ttyS0 を 通常のシリアルポートとして使用(シリアルコンソールは使えなくなる)
#vi /etc/inittab
T0:23:respawn:/sbin/getty -L ttyS0 115200 linux
をコメントアウト
#T0:23:respawn:/sbin/getty -L ttyS0 115200 linux

lighttpdの設定
DirectoryListingを無効に。
#vi /etc/lighttpd/lighttpd.conf

#server.dir-listing = “enable”
server.dir-listing = “disable”

url.access-deny に
,”.ini” を追加

php5を使用可能に。
#lighty-enable-mod fastcgi
#lighty-enable-mod fastcgi-php

php5の設定(php.ini)
#vi /etc/php5/cgi/php.ini

mysqlの設定 (my.cnf)
#vi /etc/mysql/my.cnf

[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8

smartmontools
#vi /etc/default/smartmontools

enable_smart=”/dev/sda”
start_smartd=yes

#vi /etc/smartd.conf
すべてのDEVICESCANをコメントアウト

#DEVICESCAN ~~~
/dev/sda -H -m root@localhost

forwardの設定
%ユーザー名%宛(root->%ユーザー名%はalias)のすべてのメールを%メールユーザー名%@%メールドメイン名%に転送
$cd
$vi .forward

%メールユーザー名%@%メールドメイン名%

postfixの設定

Filed under: 育苗管理システム — pinewell @ 5:52 PM

これはワシが借りているVPSサーバーへ relayする設定。
サブミッションポートでlistenしてSASL認証を用いてる。

postfixの設定
vi /etc/postfix/main.cf

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no
myhostname = debian.%ドメイン名%
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = camera.%メールドメイン名%, debian.%ドメイン名%, localhost.%ドメイン名%, localhost
relayhost = [%メールドメイン名%]:587
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_use_tls = no
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a “$EXTENSION”
recipient_delimiter = +
inet_interfaces = all
home_mailbox = Maildir/
message_size_limit = 0
mailbox_size_limit = 0

#cd /etc/postfix/
#vi saslpass

%メールドメイン名% %メールユーザー名%:’%パスワード%’

#postmap saslpass
#rm saslpass

« Newer PostsOlder Posts »

Powered by WordPress