エックスサーバーで添付付きのメールをCRONで毎日送る (申し込みデータとか、ログとか…)

ここから–
#!/usr/bin/php7.1

<?php

$mailTo      = '送り先メアド@入れるよ';
 
// メールのタイトル
$mailSubject = 'CSV送るよ';

$tim = time();
$today = gmdate("Y/m/d(D)",$tim+9*60*60);
$now = gmdate("Y/m/d(D)H:i",$tim+9*60*60);

// メール本文
$mailMessage = <<<mlbody
こうすると複数行のメールが自由にできるよ
cronによる送信日本年月日:$today
cronによる送信日本時間:$now
使い方はいろいろだね
mlbody;
 
// 添付するファイル
$dir = './ドメインフォルダ名/添付したいファイルのあるフォルダ/';
$file = 'log.csv(添付するファイル名)';
$fileName    = $dir.$file;
 
// 差出人のメールアドレス
$mailFrom    = 'nice@なメアド';
 
// Return-Pathに指定するメールアドレス
$returnMail  = 'nice@なメアド';
 
// メールで日本語使用するための設定をします。
mb_language("Ja") ;
mb_internal_encoding("UTF-8");
 
$header  = "From: $mailFrom\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"__PHPRECIPE__\"\r\n";
//$header .= "\r\n";
 
$body  = "--__PHPRECIPE__\r\n";
$body .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\r\n";
$body .= "\r\n";
$body .= $mailMessage . "\r\n";
$body .= "--__PHPRECIPE__\r\n";
 
// 添付ファイルへの処理をします。
$handle = fopen($fileName, 'r');
$attachFile = fread($handle, filesize($fileName));
fclose($handle);
$attachEncode = base64_encode($attachFile);
 
$body .= "Content-Type: image/jpeg; name=\"$file\"\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n";
$body .= "Content-Disposition: attachment; filename=\"$file\"\r\n";
$body .= "\r\n";
$body .= chunk_split($attachEncode) . "\r\n";
$body .= "--__PHPRECIPE__--\r\n";
 

mb_language("ja");
mb_internal_encoding("UTF-8");
mb_send_mail($mailTo, $mailSubject, $body, $header,'-f' . $returnMail);


?>

—ここまで

#!/usr/bin/php7.1 のところは、自分のサーバー情報から 確認すべし

サーバーで
ドメイン名のフォルダの直下に /okuru フォルダを作成して
そこへ okuru.php と名付けた上のphp をアップする パーミッションを実行可能権限755にする

サーバーパネルから CRON設定画面開いて コマンドのところに
/home/サーバID/ドメイン名/okuru/okuru.php

時間とタイミングは好きにする
 CSV送るよっていうメールが来て、ちゃんとファイルがついてれば成功
別にCSVでなくてもいいけど、今回はCSVだったので

覚え書きです。またわすれちゃうから。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA