SQLの窓

2018年10月18日


PHP の imap 関数で( Windows ローカル )、Yahoo メールのメールをさくらインターネットのメールへコピーする

imap_append でデータを追加しているので、同じメールでも追加されて増えていきます。

メッセージ作成に時間がかかるので、WEB 上の実行の場合は、タイムアウトに注意する必要があります。

imap_utf8_to_mutf7 は、日本語で作成されたフォルダに対して必要です。
<?php
error_reporting( E_ALL & ~E_NOTICE & ~E_STRICT );
session_cache_limiter('nocache');
session_start();

header( "Access-Control-Allow-Origin: *" );
header( "Content-Type: application/json; charset=utf-8" );

# デバッグログの初期化
file_put_contents("debug.log", "開始\n" );

mb_internal_encoding("UTF-8");

xlog("ログの出力");

# ***************************
# IMAP 接続( 送信元 )
# ***************************
$con = @imap_open("{imap.mail.yahoo.co.jp:993/imap/ssl}INBOX", "アカウント", "パスワード");
if ( $con === FALSE ) {
	print imap_last_error();
	xlog(imap_last_error());
	exit();
}

# ***************************
# IMAP 接続( 送信先 )
# ***************************
$folder = imap_utf8_to_mutf7("個人用");
$con2 = @imap_open("{さくらユーザ.sakura.ne.jp:993/imap/ssl}INBOX.{$folder}", "ユーザ@さくらユーザ.sakura.ne.jp", "パスワード");
if ( $con2 === FALSE ) {
	print imap_last_error();
	xlog(imap_last_error());
	exit();
}

# ***************************
// 現在のメールボックスに関する情報を得る
# ***************************
$mbox_info = imap_mailboxmsginfo( $con );
xlog("\n■■■ \$mbox_info 現在のメールボックスに関する情報 -------");
xlog( print_r( $mbox_info ,true ));

if( $mbox_info->Nmsgs == 0 ) {
	xlog( "メールメッセージがありません" );
	exit();
}

// ***************************
// メッセージ件数
// ***************************
$max = $mbox_info->Nmsgs;
xlog("【メッセージ件数:{$max}】" );

// 一番古いものから 30件
if ( $max > 30 ) {
	$max = 30;
}

// ***************************
// $max 〜 1
// 最新から表示
// ***************************
for( $i = 1; $i <= $max; $i++ ) {

	$header = imap_fetchheader( $con, $i );
	$body = imap_body( $con, $i );
	imap_append( $con2, "{さくらユーザ.sakura.ne.jp:993/imap/ssl}INBOX.{$folder}", $header . "\r\n" . $body );

}

// ***************************
// IMAP 接続解除
// ***************************
imap_close($con2);
imap_close($con);

print json_encode($mbox_info, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE );

// ***************************
// ログ出力
// ***************************
function xlog($message) {
	file_put_contents("debug.log", "{$message}\n" , FILE_APPEND );
}
?>





【PHP + 通信の最新記事】
posted by lightbox at 2018-10-18 15:22 | PHP + 通信 | このブログの読者になる | 更新情報をチェックする
container 終わり

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

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