質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

1471閲覧

mb_send_mail の宛先複数送信について

yy_hatena

総合スコア12

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/01/04 10:14

PHP初心者です。どうぞ宜しくお願い致します。

PHPのmb_send_mai()を使用して、複数の宛先(5件〜10件程度)にメールを送信させたいと思っています。
ただ、受信側には同時に送信した他のメールアドレスは表示されないようにしたいと考えております。

mb_send_mai()では、メールアドレスをカンマ区切りにすると複数送信可能となりますが、その場合はCCとなってしまい、目的が達成できません。

何か良い方法はございますでしょうか?
できれば、都合によりライブラリは使用しないで実現したいと思います。

お手数ではございますが、ご回答をどうぞ宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

BCC に突っ込むか、個別のメールを作成するしかありません。

メール送付のシステム化は、メールの仕組みに対して十分な学習が必要です。
ユーザに迷惑をかける可能性が高いので、しっかり学習するか、アウトソースを検討するか、早めに決断することが重要です。

投稿2018/01/04 10:27

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yy_hatena

2018/01/04 12:00

ご回答ありがとうございます! 仰られる通りだと思います。 これまで、外部ソースを利用したことが無かったのですが、今回を期に利用してみたいと思いました。 外部ソースを利用するにしても、メールの仕組みに対して十分学習したいと思います! これからのヒントを与えて頂き、とてもありがたく感じます。 ありがとうございました!
guest

0

mb_send_mail()ないしmail()は融通の聞かないメーラーです
一通一通を別々におくらないかぎり、マニュアルにもあるとおり
PEAR::Mail()などを利用することが推奨されています。

投稿2018/01/04 10:29

yambejp

総合スコア114829

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yy_hatena

2018/01/04 11:51

ご回答、ありがとうございます! なるほど、やはりPEAR::Mail()が推奨されますよね。 ちなみに、ですが、、、 PEAR::Mail()の方が推奨される理由はどのようなものでしょうか? ご案内頂いたPHPマニュアルには、 「この関数は 1 通のメールを送信するたびに SMTP ソケットをいったん閉じて開きなおします。これは非効率的です。」 と書いておりますが、「非効率だから」PEAR::Mail()が良いということになるのでしょうか? ということは、PEAR::Mail()は、SMTP ソケットを閉じずに送信するということになりますか? ご回答に次々質問してしまい、申し訳ございません。 このあたり、只今勉強中でして、お教えいただければ幸いです。 何卒宜しくお願い致します。
yambejp

2018/01/04 12:51

> PEAR::Mail()の方が推奨される理由 サーバーへの接続をこまかく指定できたり、 メールヘッダと送り先が必ずしも一致しなくてもよかったり CCやBCCがやりやすかったり、いろいろ理由はあります。 $params = [ 'host' => '・・・', 'port' => '25', 'auth' => false, ]; $recipients=array($to); $headers=Array( 'From'=>$mailfrom ,'To' =>$to ,'Subject'=> $mailsubject ); $objMail =& Mail::factory('smtp', $params); $result = $objMail->send($recipients, $headers, $mailbody); ただ結局PEARを使ったとしても宛先ごとにbodyの内容を変えたりするのであれば ループで回さなくてはいけないので、あまりこだわる必要はないかもしれません。
yy_hatena

2018/01/09 04:49

ソースまで記載頂き、申し訳ございません。ありがとうございます! なるほど、そうなんですね!勉強になります! 状況をみながら、使い所を見極めたいと思います。 お世話になりました。
guest

0

送り先のメールアドレスを配列に格納して、foreachで一つずつ取り出して送ればよいのではないでしょうか。

PHP

1<?php 2 3$address = array( 4 'a' => "1@mail.com", 5 'b' => "2@mail.com", 6 'c' => "3@mail.com", 7 'd' => "4@mail.com", 8 'e' => "5@mail.com", 9); 10 11foreach($address as $to){ 12$title = "test"; 13$content = "test"; 14$from = "test@mail.com"; 15 16mb_send_mail($to,$title,$content,$from); 17 18} 19

投稿2018/01/04 10:28

s_eric

総合スコア184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yy_hatena

2018/01/04 11:55

ご回答、ありがとうございます! コードも記載頂き助かります! 私も、s_ericさんと同じようなことを考えていたのですが、yambejpさんにご回答頂いたとおり、PHPマニュアルにて 「この関数は 1 通のメールを送信するたびに SMTP ソケットをいったん閉じて開きなおします。これは非効率的です。」 と記載があったので、躊躇していたところでした。。。 ですが、ご回答頂き嬉しいです! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問