こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHP上でのメールフォーム送信設定

こんにちは。
メールフォームの送信する際の設定について質問があります。
メールフォームの送信ボタンを押した後、下記のようなエラーメッセージが出ました。

Warning: mb_send_mail() [function.mb-send-mail]: Failed to connect to mailserver at "smtp.mail.yahoo.co.jp" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in c:\program files\apache group\Apache\htdocs\mytest16-1.php on line 65

yahooメールを使っての送信を考えていて、yahoo側の登録は完了しました。
php.iniファイルは以下のように変更しました。
[mail function]
; For Win32 only.
SMTP = smtp.mail.yahoo.co.jp←ここを直しました
smtp_port = 25

; For Win32 only.
sendmail_from = xxxxxxx@yahoo.co.jp
        ↑ここを直しました。
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

その後、Outlookを利用してPOP3送受信も行い、正常に終了しました。
しかし、まだ同様のエラーが出続けてしまいます。
初心者ですので、メールに関しての知識がほとんどありません。どのように解決したらよいのかを詳しく教えていただければと思います。
よろしくお願いします。

環境:WindowsXP, Apache2.0, MySQL1.4, PHP5

投稿日時 - 2006-04-17 09:10:17

QNo.2096937

すぐに回答ほしいです

質問者が選んだベストアンサー

最後のところ間違えました
$error = $smtp->send($recipient, $headers, $message);
if (PEAR::isError($error)) die($error->getMessage());
exit("メッセージを送信しました");
?>

投稿日時 - 2006-04-18 09:43:18

お礼

pha504さん
お返事遅くなってすいませんでした。
なんとかできました。
ありがとうございました。

投稿日時 - 2006-05-15 12:00:53

ANo.3

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

認証するならPEARのMailかNet/SMTPを使うのがはやそうです
試しに作ってみましたが自分の環境では送信できました
<?php
$params["host"] = "smtp.mail.yahoo.co.jp";
$params["auth"] = true;
$params["username"] = "username";
$params["password"] = "password";
$sender = "from@example.com";
$recipient = "to@example.org";
$subject = "テストテスト";
$subject = mb_convert_encoding($subject, "jis", "sjis");
$subject = mb_encode_mimeheader($subject, "jis");
$message = "test メッセージ";
$message = mb_convert_encoding($message, "jis", "sjis");
require_once 'Mail.php';
$smtp = Mail::factory("smtp", $params);
if (PEAR::isError($smtp)) die($smtp->getMessage());
$headers['From'] = $sender;
$headers['Subject'] = $subject;
$headers['MIME-Version'] = "1.0";
$headers['Content-Type'] = 'text/plain; charset="iso-2022-jp"';
$headers['Content-Transfer-Encoding'] = "8bit";
$headers['X-Mailer'] = "PHP PEAR/Mail(smtp)";
$smtp->send($recipient, $headers, $message);
if (PEAR::isError($smtp)) die($smtp->getMessage());
exit("メッセージを送信しました");
?>

投稿日時 - 2006-04-18 08:46:07

ANo.1

自宅のパソコンにインストールされているのですね
Outlookで受診作業を行った後すぐにメールフォームを実行したらどうなりますか
これでメールが送信できるようならスクリプトに認証部分を追加する必要があります。

参考URL:http://help.yahoo.co.jp/help/jp/mail/whatisymail/whatisymail-50.html

投稿日時 - 2006-04-17 10:19:47

補足

早速の回答ありがとうございます。
Microsoft Outlook2002を使用していますが、参考URLにあったように送受信ボタンを2度押し、即送信してみました(POP before SMTPを参照しました)。
が、同様のエラーが出てきました。
どうしようもできず、途方にくれています。
どうしたらいいでしょうか。

投稿日時 - 2006-04-17 11:03:33

あなたにオススメの質問