会員データーの会員に一斉メール配信をしたいのですが上手くいきません。
DBはkaiin,maildbの二つ
環境はエクリプス(PHP5.3)とXAMPP
ソースコードは以下の通りです。
<?php
//データーベース接続
$dbh = new PDO("sqlite:user",null,null);
//
mb_language("japanese");
mb_internal_encoding("UTF8");
if (isset($_POST["submit"])){
//変数のセット
$title = htmlspecialchars($_POST['title'],ENT_QUOTES);
$text = htmlspecialchars($_POST['text'],ENT_QUOTES);
$date = date('Y/m/d H:i:s');
if (strlen($title)==0){
$error = "タイトルが未入力です。";
}
if (strlen($text)==0){
$error = "本文が未入力です。";
}
//メール文をデーターベースに残す
if ($error==""){
$sql = "INSERT INTO maildb ( title,text,date ) VALUES ( '$title','$text','$date' )";
$sth = $dbh->prepare($sql);
$sth->execute();
//送信先アドレス抽出
$sql = "SELECT name,email FROM kaiin";
$sth = $dbh->prepare($sql);
$sth->execute();
while ($row = $sth->fetch()) {
$to = $row['email'];
$subject = $_POST['title'];
$body = $row['name']." さま\n\n";
$body .= $_POST['text']."\n\n";
$body .= "本メール会員を退会する場合は以下のURLより手続きをお願いします。\n";
$body .= "http://localhost/php/#\n";
$from = "From:abcd@efgh.jp";
if(mb_send_mail($to,$subject,$body,$from)){ ここが40列目です。
echo "メール送信成功しました。";
}else{
echo "メール送信失敗しました。";
}
}
}
}
?>
エラーコード
Warning: mb_send_mail() [function.mb-send-mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\Narita\kanri\email.php on line 40
翻訳
(警告:mb_send_メール()[function.mb-送信メール]:「localhost」ポート25でmailserverと接続するために失敗し、php.iniにおいて設定するあなたの「SMTP」および「smtp_port」を確認するか、またはライン40においてC:\xampp\htdocs\Narita\kanri\email.phpのini_セット()を使いなさい)
php.iniの変更が必要なのでしょうか?
または他に何か原因があるのでしょうか?
No.3ベストアンサー
- 回答日時:
No.5
- 回答日時:
ISPのポート587経由で送りたいということですよね?
ポート587はサブミッションポートといって25の代替ポートして
ほとんどの場合認証が必要となります。
ここ10年ほどで出所を隠したスパムが送れないようにISPが対策をしたということです。
http://www.ii-okinawa.ad.jp/support/mail/port587 …
以前の質問で以下あるよう
https://oshiete.goo.ne.jp/qa/8025090.html
mb_send_mail()ないしmail()は単純に認証なしでメールを送る機能なので
認証付きメール送信はなんらかのライブラリを介するのが妥当です。
よくつかわれるのはPEAR::Mail。
PEAR::Mailは複数メールを送るときなどにも
mail()関数でループ処理をするより効率がよいようです。
http://pear.php.net/package/Mail
一応、みる限りXAMMPには補完機能としてsendmail.iniが用意されているので
調整ができるかもしれません
C:\xampp\sendmail\sendmail.ini
また、php.iniのSMTPやsmtp_portも合わせて変更する必要がありそうです。
ただし私はUNIX環境でしかphpを使用しないのでWin版については検証していません、あしからず
http://php.codeindepth.com/php-sending-mail/
No.4
- 回答日時:
>php.iniでポートを587にしてみましたがダメでした。
メールサーバ動作しているんですか?
「C:\xampp」ってくらいですからWindows なんでしょうけど、メールサーバ構築した記憶はおありですかね?
SMTP接続でISPのメールサーバとか指定するもの…かと。
# ローカルネットワーク内にSMTPサーバが構築されているならそちらに。
# ISPのSMTPサーバを…という場合には認証とか587ポートへの変更とかは必要になる可能性は高いでしょうが。
sendmail_fromとかはちょっと調べていないので不明ですが。
# php詳しい人待ち?
No.1
- 回答日時:
phpは専門外ですが…。
>Failed to connect to mailserver at "localhost" port 25
メール送信のためにメールサーバーへの接続に失敗した。
と言ってます。
>verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()
php.iniかini_set()で設定してくれ。
と言ってます。
で、検索すると
http://www.phpbook.jp/tutorial/mailini/index1.html
こんなページが出てきます。
Wr5さん、php.iniでポートを587にしてみましたがダメでした。
あとsendmail_from =で自身のメールアドレスを入れてみましたがやはり送信できませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP php エラー 2 2022/10/23 16:43
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
BASP21メール送信(SMTP-AUTH認...
-
VB6.0とBASP21を用いてyahooメ...
-
(PHP)mb_send_mailでメール送信...
-
yahooのフリーメールでPHPでSMT...
-
yahoo送信サーバーの使い方???
-
フォントの色を変えるには?
-
PHPのif文でその処理を途中で抜...
-
リンク先を隠す方法はないでし...
-
copy() で属性保存
-
onedrive にexcelファイルをア...
-
PHP session_destroyとsession...
-
「クラス関数」「メンバ関数」...
-
別PHPファイルに変数を渡す
-
VBSの「MsgBox」について
-
3つ以上の論理積は利用可能なの...
-
「@$変数」の「@の意味は?」
-
CFileDialogの最初のディレクト...
-
htmlをphpにするにあたってデメ...
-
openCVの超解像処理
-
GDで生成したはずの画像が文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
項目「sendmail_path」には メ...
-
(PHP)mb_send_mailでメール送信...
-
BASP21メール送信(SMTP-AUTH認...
-
phpをpsqlへ接続しようとするの...
-
PHP でmb_send_mailが上手くい...
-
ローカル環境でのメール送信が...
-
javaを使ってメールがしたい
-
VB6.0とBASP21を用いてyahooメ...
-
C# メール送信ついて困っています
-
PHP mb_send_mailが使えない
-
edmaxで送信できなくなりました
-
mb_send_mailでデタラメなメー...
-
PHPで外部SMTPサーバーを利用し...
-
mail関数の587ポート対応に関して
-
外部smtpサーバーを利用したメ...
-
mb_send_mailで送ったエラーメ...
-
C#のメール送信について質問が...
-
メールが送信出来ないのですが
-
yahoo送信サーバーの使い方???
-
フォントの色を変えるには?
おすすめ情報