BLOG ENTRY

mail関数でメール送信[PHP]

php

mail関数でメール送信。。。

これいっつも微妙に忘れてしまうので、だったら書いとけってことで。

。。。。

[php]
<?php
$tomail = ‘送信先メールアドレス’;
$fromMail = ‘送信元メールアドレス’;
$subject = "メール件名";
$from = "From: 送信者名<{$fromMail}>\r\nContent-Type:text/plain;charset=iso-2022-jp\r\n";
$content = <<<TEXT
メール中身
TEXT;
$header = "Return-Path: {$fromMail}";
mb_language(‘Japanese’);
mail($tomail, mb_encode_mimeheader($subject), mb_convert_encoding($content, "JIS", "EUC-JP"), $from, $header);
[/php]

第5引数を”-f {$fromMail}”と書いてもReturn-Path:とenvelope-fromを設定してくれます。

こんな感じで関数にしてみたりする
[php]
//メール送信する関数
function _send_mail($params = array()) {
mb_language(‘ja’);
mb_internal_encoding(‘EUC-JP’);

$encoded_subject = _mb_mime_encode(mb_convert_encoding($params[‘subject’], ‘JIS’, ‘EUC-JP’), ‘ISO-2022-JP’);
$encoded_body = mb_convert_encoding($params[‘body’], ‘JIS’, ‘EUC-JP’);

$from = "From:送信者名<{$params[‘from_mail’]}>\r\nContent-Type:text/plain;charset=ISO-2022-JP\r\n";
$header = "-f {$params[‘from_mail’]}";

mail($params[‘tomail’], $encoded_subject, $encoded_body, $from, $header);
}

// 長いメール件名の文字化けを解消する
// @return メール件名
// 参考 http://jp.php.net/manual/ja/function.mb-encode-mimeheader.php#58515
function _mb_mime_encode($string, $encoding, $linefeed="\r\n ") {
$pos = 0;
// after 36 single bytes characters if then comes MB, it is broken
// but I trimmed it down to 24, to stay 100% < 76 chars per line
$split = 24;
while ($pos < mb_strlen($string, $encoding)) {
$output = mb_strimwidth($string, $pos, $split, "", $encoding);
$pos += mb_strlen($output, $encoding);
$_string_encoded = "=?".$encoding."?B?".base64_encode($output)."?=";
if($_string)
$_string .= $linefeed;
$_string .= $_string_encoded;
}
$string = $_string;
return $string;
}

[/php]

WRITE COMMENT


(required)


(required)


(required)

MENU

veltica creative of twitter