4

私はPHPが初めてで、過去5時間からメールを送信しようとしていて、今は本当に疲れています。ありがとう。

これが私のコードです。Gmailアカウントを使用しています。

include("class.phpmailer.php");
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail             = new PHPMailer();

$body             = $mail->getFile('contents.html');
$body             = eregi_replace("[\]",'',$body);

$mail->IsSMTP();
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
$mail->Port       = 465;                   // set the SMTP port for the GMAIL server

$mail->Username   = "hussaintalha@gmail.com";  // GMAIL username
$mail->Password   = "xxxxxxxx";            // GMAIL password

$mail->AddReplyTo("hussaintalha@gmail.com","First Last");

$mail->From       = "hussaintalha@gmail.com.com";
$mail->FromName   = "First Last";

$mail->Subject    = "PHPMailer Test Subject via gmail";

//$mail->Body       = "Hi,<br>This is the HTML BODY<br>";                      //HTML Body
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->WordWrap   = 50; // set word wrap

$mail->MsgHTML($body);

$mail->AddAddress("hussaintalha@gmail.com", "John Doe");

$mail->AddAttachment("images/phpmailer.gif");             // attachment

$mail->IsHTML(true); // send as HTML

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}
?>

ファイルを実行すると、次のエラーが表示されます。

警告: fopen(contents.html) [function.fopen]: ストリームを開くことができませんでした: 1870 行目の D:\xampplite\htdocs\WebEng\class.phpmailer.php にそのようなファイルまたはディレクトリはありません

警告: fsockopen() [function.fsockopen]: ssl://smtp.gmail.com:465 に接続できません (ソケット トランスポート "ssl" が見つかりません - PHP を構成したときに有効にするのを忘れましたか?) D:\xampplite\htdocs\WebEng\class.smtp.php 行 122 メーラー エラー: SMTP エラー: SMTP ホストに接続できませんでした。

4

2 に答える 2

4

まず、エラー メッセージが表示されたら、それは素晴らしいことです。ケースの 90% で、他の人も同じように感染していることがわかるため、このエラー メッセージに関する多くの情報がインターネット上で見つかります。

したがって、まだわからないエラー メッセージが表示された場合のステップ 1 は、常に Google を開いてコピーし、そこに貼り付けることです。ただし、システムに一意に接続されているパスやその他のものはすべて削除してください。

次に、エラーについて。特に xampp light は SSL に対応していません。最初に、より簡単な sendmail の例を試してみてください。非常に小さいもののように、段階的に増やします。何かがうまくいかない理由がわからないとき、私はいつもそうしています。1 つの行から始めて、それが何をするかを確認してから、別の行を追加していきます。

これから始めて、それが機能するかどうかを確認してみましょう:

<?php

include("class.phpmailer.php");

$mail             = new PHPMailer();

$mail->IsSMTP();
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
$mail->Port       = 465;                   // set the SMTP port for the GMAIL server
$mail->Username   = "hussaintalha@gmail.com";  // GMAIL username
$mail->Password   = "xxxxxxxx";            // GMAIL password

$mail->From       = "hussaintalha@gmail.com";
$mail->Subject    = "PHPMailer Test Subject via gmail";
$mail->Body       = "Hi, this is a test";           
$mail->AddAddress("hussaintalha@gmail.com", "Hussain");

$mail->send();
?>

ああ、ところで。からのメールに .com が多すぎます!

于 2009-04-09T21:29:12.833 に答える