PHPã§ã¡ãŒã«éä¿¡ããããã®æ¹æ³ã解説ãåããŠã§ãããããããã
PHPã§ã¡ãŒã«éä¿¡ããæ¹æ³ããåå¿è ã§ãããããããããã«ãµã³ãã«ã³ãŒããšå ±ã«è§£èª¬ããŠããŸããã¡ãŒã«éä¿¡ããããã®é¢æ°ãã¡ãŒã«ãã©ãŒã ã§ã®éä¿¡æ¹æ³ãSMTPã«ã€ããŠã説æããŠããŸããPHPã®éçºæ¥åã§å€ãã®ãã¡ãŒã«éä¿¡ã®åŠçãæ§ç¯ããããšã§ããç¹ã«ãµã€ãå¶äœã«ãããŠã¯ã»ãŒå¿
é ã®åŠçãšãªããŸãã
ä»åã¯ãåå¿è
ã®æ¹ã«ããããããããµã³ãã«ã³ãŒããå
ã«è§£èª¬ããŸãã®ã§ãPHPã§ã¡ãŒã«éä¿¡ãããŠã¿ããå Žåã¯äžèªããŠãã ããã
PHPã§ã¡ãŒã«éä¿¡ããæ¹æ³
PHPã§ã¡ãŒã«éä¿¡ããæ¹æ³ã¯å€§ããåãããšãmail颿°ããšãmb_send_mail颿°ãã®2çš®é¡ãããŸããããããã®æžãæ¹ãèŠãŠãããŸãããã
mail颿°ã䜿çšããå Žå
mail颿°ã¯ã¡ãŒã«ãéä¿¡ããããã®é¢æ°ã§ãããã©ãŒããã㯠mail(å®å
, ä»¶å, ã¡ãã»ãŒãž, ããã) ã§ãããµã³ãã«ã³ãŒãã§èŠãŠã¿ãŸãããã
$to = "to@example.com";
$subject = "TEST";
$message = "This is TEST.\r\nHow are you?";
$headers = "From: from@example.com";
mail($to, $subject, $message, $headers);
å®å
ãéãäž»ã®ã¡ãŒã«ã¢ãã¬ã¹ã¯ä»®ã§ãã®ã§ãããããã®ç°å¢ã«åãããŠå¯Ÿå¿ããããã«ããŠãã ãããæ¬æã§æ¹è¡ãããå Žå㯠\r\nïŒCRLFïŒ ãå©çšããããšã§æ¹è¡ãããŸãããªããä»¶åã¯æ¹è¡ã§ããªãã®ã§æ³šæããŠãã ããã
ä»åã®äŸã§ã¯ããã㯠From: ã䜿ã£ãŠããŸãããCc: ã Bcc: ãªã©ãæå®ã§ããŸãã
mail颿°ã®è¿ãå€ã¯booleanïŒè«çåïŒã§ãããã¡ãŒã«éä¿¡ã«æåã§ true ã倱æã§ false ãè¿ããŸããããã¯ã¡ãŒã«ãå±ããŠãããã©ããã®å€å®ã§ã¯ãããŸããããããŸã§ãéä¿¡ãå®äºããããã©ããã§ãã®ã§æ³šæããŸãããã
mb_send_mail颿°ã䜿çšããå Žå
mb_send_mail颿°ãmail颿°åæ§ãã¡ãŒã«ãéä¿¡ããããã®é¢æ°ã§ãããã©ãŒããã㯠mb_send_mail(å®å
, ä»¶å, ã¡ãã»ãŒãž, ããã) ã§ãããµã³ãã«ã³ãŒãã§èŠãŠã¿ãŸãããã
$to = "to@example.com";
$subject = "TEST";
$message = "This is TEST.\r\nHow are you?";
$headers = "From: from@example.com";
mb_send_mail($to, $subject, $message, $headers);
åºæ¬çãªæžãæ¹ãè¿ãå€ãbooleanã§ããããšãªã©ãå«ãmail颿°ãšåãã§ããã§ã¯äœãéãã®ã§ããããïŒ
å®ã¯mb_send_mail颿°ã¯ãã«ããã€ãã«å¯Ÿå¿ãããŠãããæ¥æ¬èªã§ã®éä¿¡ãå¯èœãªã®ã§ãã
äžèšãµã³ãã«ã³ãŒãã®ãŸãŸã§ã¯ã§ããŸããããäžèšã®ã³ãŒããmb_send_mail颿°ãããåã«èšå
¥ããããšã§æ¥æ¬èªã®éä¿¡ãå¯èœãšãªããŸãã
mb_language("Japanese");
mb_internal_encoding("UTF-8");
mail颿°ã§ãè¯ãã®ã§ãããæ¥æ¬èªã§ã®ã¡ãŒã«éä¿¡ãäž»ã«ãªãããšãæ³å®ãããå Žåã¯ãmb_send_mail颿°ã®æ¹ãå©çšããããã«ããŸãããã
è€æ°ã®å®å ã«ã¡ãŒã«ãéä¿¡ããå Žå
å®å
ãè€æ°ã«ãããå Žåã¯ãmb_sendmail ã«æž¡ãå®å
ã«ã³ã³ãåºåãã§è€æ°ã®ã¢ãã¬ã¹ãæå®ããŸãã
äžèšã®äŸã«æ²¿ã£ãŠæžããšä»¥äžã®ããã«ãªããŸã
$to = "to_1@example.com,to_2@example.com,to_3@example.com";
ãŸããCcãBccã§éä¿¡ãããå Žåã¯ä»¥äžã®ããã«headerã«è¿œèšããŸãã
$headers = 'From: from@example.com' . "\r\n";
$headers .= 'Cc: cc@example.com' . "\r\n";
$headers .= 'Bcc: bcc@example.com';
headerã«è€æ°æå®ããå Žåã¯ããã®ããã«æ¹è¡ã³ãŒãã®Â \r\nã§åºåããŸãã
ãŸããCcãBccã§è€æ°ã®ã¡ãŒã«ã¢ãã¬ã¹ãšæå®ãããæã¯ãå®å
åæ§ã«ã³ã³ã , ã§åºåããŸãã
ã¡ãŒã«ãã©ãŒã ããéä¿¡ããå Žå
ãµã€ãäžã§ã¡ãŒã«ãã©ãŒã ãäœæãããŠãŒã¶ãŒãå ¥åããæ å ±ãå ã«ã¡ãŒã«ãéä¿¡ããæ¹æ³ãèŠããå¿ èŠããããŸããäŸãã°äžèšã®ãããªãã©ãŒã ãäœã£ããšããŸãã
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<form action="./test_mail.php" method="post">
    <p>éãå
</p><input type="text" name="to">
    <p>ä»¶å</p><input type="text" name="title">
    <p>ã¡ãã»ãŒãž</p><textarea name="content" cols="60" rows="10"></textarea>
    <p><input type="submit" name="send" value="éä¿¡"></p>
</form>
</body>
</html>
ãã©ãŒã ãäœæãããã¡ãŒã«ãéä¿¡ããããã°ã©ã ãäœæããŸãããããã¡ã€ã«å㯠test_mail.php ãšããŸãã
ïŒã¡ãŒã«ãã©ãŒã ã§test_mail.phpãã¢ã¯ã·ã§ã³æå®ããŠããããïŒ
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<?php
mb_language("Japanese");
mb_internal_encoding("UTF-8");
$to = $_POST['to'];
$title = $_POST['title'];
$message = $_POST['message'];
$headers = "From: from@example.com";
if(mb_send_mail($to, $title, $message, $headers))
{
echo "ã¡ãŒã«éä¿¡æåã§ã";
}
else
{
echo "ã¡ãŒã«é信倱æã§ã";
}
?>
</body>
</html>
ããã§ã¡ãŒã«ãã©ãŒã ããã®ã¡ãŒã«éä¿¡ãå¯èœã«ãªããŸããã
PHPã§HTMLã¡ãŒã«ãéä¿¡ããæ¹æ³
HTMLã¡ãŒã«ãšã¯ãè£
é£Ÿãæœãããã¡ãŒã«ã®ããšãæããŸãããã©ã³ããæåè²ã®æå®ãã§ããç»åã®æ¿å
¥ãã¬ã€ã¢ãŠãæå®ãªã©HTMLãµã€ãã®ãããªã¡ãŒã«ãéããŸãã
䜿çšãã颿°ã¯mailãããã¯mb_send_mailã§ããäž¡é¢æ°ã®åŒæ°ã§ãããããéšåã«Content-typeã远å ããããšã§å¯Ÿå¿ãå¯èœã§ãã
ãµã³ãã«ãèŠãŠã¿ãŸãããã
$to = "to@example.com";
$subject = "HTML MAIL";
$message = "This is HTML MAIL";
$headers = "From: from@example.com";
$headers .= "\r\n";
$headers .= "Content-type: text/html; charset=UTF-8";
mb_send_mail($to, $subject, $message, $headers);
Content-type ã®åŸã« text/html ãå
¥ããããšã§HTMLã¡ãŒã«ã«ãªããŸãã charset=UTF-8 ã®å¯Ÿå¿ãããããã«ããŸããããæåã³ãŒãUTF-8ã¯äžçå
±éã§ãã®ã§ãç¹å®ã®å Žå以å€ã¯UTF-8ã§åé¡ãããŸããã
Content-type以å€ã«ããæ¹è¡ã³ãŒããå
¥ããŠããç¹ããã€ã³ãã§ããBccãCcã远å ããæãšåæ§ã«ã$headers ã«è¿œå ããå Žåã¯ã\r\nïŒCRLFïŒãå
¥ããã«ãŒã«ãšãªã£ãŠããã®ã§å¿ããã«å¯Ÿå¿ããŸãããã
SMTPçµç±ã§ã®ã¡ãŒã«éä¿¡ããããã
ã¡ãŒã«éä¿¡åŠçãäœæããå Žåã¯SMTPçµç±ãããããã§ãã
ããããSMTPãšã¯ïŒ
SMTPã¯ãSimple Mail Transfer Protocolãã®ç¥ã§ãããç°¡æçãªã¡ãŒã«éä¿¡ãããã³ã«ãæããŸããã¡ãŒã«éä¿¡ããéã«ã¯ãããã³ã«ããšã«ã«ãŒã«ãèšããããŠãããSMTPã¯ãã®ãã¡ã®äžã€ã§ãã
è¿·æã¡ãŒã«ãã¹ãã 察ç匷åã«ãªã
SMTPãµãŒããŒãçµç±ããããšã®ã¡ãªããã¯ãè¿·æã¡ãŒã«ãã¹ãã 察ç匷åã«ãªãããšã§ãã
SMTPãµãŒããŒã¯å€ãã®ã¡ãŒã«éä¿¡ã§å©çšãããŠãããå€ãã®å Žåã¯ãã©ãã¯ãªã¹ãã«ç»é²ãããŠããŸãããã¡ãŒã«ãåä¿¡ããåŽãšããŠãäžèŠãªã¡ãŒã«ãæ»æçãªã¡ãŒã«ãåãåãããã¯ãªãã§ããããSMTPãµãŒããŒããã©ãã¯ãªã¹ãã«å
¥ããŠããå¯èœæ§ããããŸãããä¿¡é Œæ§ãé«ãããšã§ç¥ãããŠããããè¿·æã¡ãŒã«ãã¹ãã 察ç匷åãšãªããŸãã
SMTPçµç±ã§ã¡ãŒã«éä¿¡ããã«ã¯ïŒ
SMTPã®èšå®ãããããã«ã¯ php.ini ãç·šéããå¿
èŠããããŸãã
[mail function]
; http://php.net/smtp
SMTP = smtp.xxxxx.com
; http://php.net/smtp-port
smtp_port = 587
php.iniãéãã[mail function] ã®ãšããã§äžèšã®ããã«èšå®ããŠã¿ãŸãããããµã³ãã«ã³ãŒãã§ã¯SMTPã®æå®ã¯ä»®ãšãªã£ãŠããŸããå©çšå¯èœãªSMTPãµãŒããŒãæå®ããŠãã ãããsmtp_port ã«ã¯587ãå
¥åããŠããŸããããã¯ã¡ãŒã«éä¿¡çšã®ããŒãçªå·ã§ãããSMTP-AUTHèªèšŒãããããšããä¿¡é Œæ§ãé«ãããŒãã§ãã
以äžã®ããã« php.ini ãç·šéããããšã§SMTPçµç±ã§ã®ã¡ãŒã«éä¿¡ãå¯èœãšãªããŸããphp.iniã®åæ ã«ã¯ãµãŒããŒã®åèµ·åãå¿
èŠãªã®ã§ãå¿ããªãããã«ããŸãããã
ãŸãšã
ãµã€ãå¶äœã®å€ãã¯ã¡ãŒã«æ§ç¯ãå¿ é ïŒãã£ããèŠããŸãããïŒ
PHPã§ã®éçºæ¥åã§ã¯ãã¡ãŒã«éä¿¡ã¯ã»ãŒåœããåã®ããã«åºãŠããŸããä»åã¯åºæ¬çãªæ
å ±ãå
ã«è§£èª¬ããŠããŸããã®ã§ããã£ãããšèŠããŠå¯Ÿå¿ã§ããããã«ããŸãããã
ä»å玹ä»ãããµã³ãã«ã³ãŒããèªèº«ã§è©ŠããŠã¿ãããšã§çè§£åºŠã¯æ¥éã«äžãããŸãããã²ãã£ã¬ã³ãžããŠãã ããã
ãã®èšäºã®ããŒã¯ãŒãã«é¢ããå匷äŒã»ã€ãã³ããæ¢ã
TECH PLAYã§ã¯ãITãšã³ãžãã¢åãã®å匷äŒã»ã€ãã³ãæ å ±ãæäŸããŠããŸãã
èå³ã®ããæ¹ã¯ãã²ãåå ãã ããã












