スレッド表示 | フラット表示〕 全トピック 920 件中 288 番目 次≫ ≪前

メール送信について

created: 2006-01-25 12:33 | modified: 2006-02-01 01:40 | reply: 8

[2875] メール送信について

user: yuka | created: 2006-01-25 12:33
SMTP認証を用いたメールを送信するプログラムを作成しています。
しかし、送信先にメールが送信されません。
環境はPHP5.0.2+Apache2.0.52を使用しています。

smtp.php
<?php

require_once 'c:/PHP/PEAR/Mail.php';

$param['host'] = $POST_['mailserver'];
$param['port'] = "25";
$param['auth'] = true;
$param['username'] = $POST_['user'];
$param['password'] = $POST_['pass'];
//SMTPメールクラス
$mail = Mail::factory("smtp", $param);
$user = $param['username'];

//宛先メールアドレス
$to = $_POST["to"];
print "$to";

//subjectをJISに変換
$subject = $_POST["subject"];
$subject = mb_convert_encoding("$subject","JIS","SJIS");

//subjectにMiMEエンコードを付加
$subject = mb_encode_mimeheader($subject);

//本文をJISに変換
$body = $_POST["message"];
$body = mb_convert_encoding("$body","JIS","SJIS");

//送信元アドレスをJISに変換
$address = $_POST['fromaddress'];
print "$address";
$addrss = mb_convert_encoding("$address","JIS","SJIS");

//メール送信
$result = $mail->send($to,$subject,$body,$address);

//結果
if ($result===true)
$message1 = "送信しました。";
else
$message1 = "送信できませんでした。";

print "$message1";
?>
reply: 2876 2877 返信 編集 削除

[2876] メール送信について

user: yuka | created: 2006-01-25 12:36
途中で送信されてしまいました。
すみませんでした。
プログラムの不具合等がありましたら教えてください。
よろしくおながいします。
Parent: 2875  返信 編集 削除

[2877] 一応確認。

user: ごいんきょ。 | created: 2006-01-26 02:10
メールサーバの設定は、ちゃんと済んでいますか?
念のため。
Parent: 2875  reply: 2878 返信 編集 削除

[2878] Re:一応確認。

user: yuka | created: 2006-01-26 09:23
ごいんきょさん、返信ありがとうございます。

メールサーバの設定とはphp.iniの設定のことでしょうか?
php.iniは以下のように設定しました。
それともほかに設定する必要があるのでしょうか?
回答よろしくおねがいします。

○php.ini
SMTP = 自分が接続するサーバ
sendmail_from = 自分のメールアドレス
Parent: 2877  reply: 2886 返信 編集 削除

[2886] 送信できないというのは?

user: ごいんきょ。 | created: 2006-01-28 02:57
メールが送れないというのが、
・スクリプトの問題なのか
・サーバを含むネットワーク上の問題なのか
をまず判断する必要があります。

> 送信先にメールが送信されません。
というのは、
・$mail->send()自体が行われないのか。
・行われるのだけど、エラーが出て送信されないのか。
・エラーはないのだけど、メール(SMTP)サーバで送信できないのか。
・もしくは受信(SMTP/POP)ができないのか。

いかがでしょうか。

関数のエラーは、返値falseとなるだけで、打ち出されない場合がある(特にオブジェクトは、内部でエラー回避されている可能性)ので、
echo (int)$mail->send($to,$subject,$body,$address);

とでもやって、結果を確かめた方が良いかも...しれません。

ちゃんと実行されていて、なおかつエラーがないのなら、ネットワーク上に問題があると思われます、よね。

その場合は、メールサーバのログを見るなどして、ちゃんとメールを受け取れているのか。
受け取れていれば...スクリプトレベルの問題ではないので、とりあえず割愛します。

こんなところで。
Parent: 2878  reply: 2892 2895 返信 編集 削除

[2892] Re:送信できないというのは?

user: yuka | created: 2006-01-30 12:38
PEAR_Error::getMessage ()を使って以下のようなエラーメッセージを取得しました。しかし、エラーメッセージがよくわかりません。
ソースコードのどの部分が間違っているのでしょうか?
よろしくお願いします。


Fatal error: Using $this when not in object context in C:\PHP\PEAR\PEAR.php on line 825
Parent: 2886  返信 編集 削除

[2895] 送信できないというのは?

user: yuka | created: 2006-01-31 19:24
>関数のエラーは、返値falseとなるだけで、打ち出されない場合がある(特にオブジェクトは、内部でエラー回避されている可能性)ので、

echo (int)$mail->send($to,$subject,$body,$address);とでもやって、結果を確かめた方が良いかも...しれません。

このように表示されました。

Object id #4

よろしくお願いします。
Parent: 2886  reply: 2896 返信 編集 削除

[2896] 勘違いしてました。

user: ごいんきょ。 | created: 2006-02-01 00:49
ああ、これ、ネットワーク上のSMTPサーバと接続できるんですね。
勘違いしてました。
こりゃ失礼。

> Object id #4

そっか、リソースが返されちゃうんですね。
これもまた失礼。

ちょっと待ってもらえますか。
でも他に答えてくれる人がいるかも。
Parent: 2895  reply: 2897 返信 編集 削除

[2897] SMTP認証。

user: ごいんきょ。 | created: 2006-02-01 01:40
とりあえず、
$param['auth'] = true;

をfalseにしてみてはどうでしょうか。
普通、SMTPでは、認証を行わないはずなので...。

Fatal error: Using $this when not in object context in -

の意味は...よくわかりませんが。
もしかしたら、PEARそのものに問題があるかもしれません。

http://dozo.matrix.jp/pear/index.php/PEAR/Mail.html
↑を参考に、ソース組んでみました。

 include('Mail.php');

$recipients = 'mail@address';

$headers['From'] = 'mail@address';
$headers['To'] = 'mail@address';
$headers['Subject'] = 'subject';

$body = 'Test message';

// SMTPサーバ
$mail_options = array(
'host' => 'localhost', // ホスト名
'port' => 25, // ポート番号
'auth' => false, // 認証必要?
);

// Create the mail object using the Mail::factory method
$mail_object =& Mail::factory("smtp",$mail_options); // SMTP送信準備

$mail_object->send($recipients, $headers, $body);

フォームを使うとややこしいので、まずは実際に送信できるのか。
適宜修正して、ためしてみてください。

我が家の環境では、ローカルとリモートの両方のメールサーバで、送受信できました。
Parent: 2896  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 288 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑