2

apache-5.4.2、PHP-5.4.11、Mysql-5.5.29をインストールしました。phpを使ってメールを送りたいです。メールを送信するには、PCにSMTPサーバーが必要であることに気づきました。SMTPサーバーをインストールしてメールを送信する方法の詳細を教えてください。初めてですので、詳しく教えてください。参考までに、PHPで以下のコードを使用しています。ありがとう。

<?php
$to = "xyz@gmail.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "abc@gmail.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?> 
4

3 に答える 3

3

標準の電子メールアドレスにアクセスできると仮定すると、PCにSMTPサーバーは必要ありません。必要なのは、php.iniで詳細を設定することだけです。

php.iniファイルを開いて、このセクションを見つけた場合。

[mail function]
SMTP = [Enter You Email SMTP address e.g. smtp.mymail.com]
smtp_port = 25

sendmail_from = [Enter your From Email Address e.g. me@mymail.com]

auth_username = [Enter your Email Address UserName e.g. me1234] 
auth_password = [Enter your Email Address Password e.g. password1234]

通常の電子メールアドレス(角かっこなし!)に指定された値を入力し、WebサーバーとPHPを再起動すると、稼働状態になります...

編集:

GMAIL /GoogleAppsではメールの送信にSSLが必要なようです。

そのため、ここにStackOverflowの質問があります。mail ()を介してGmailを使用してメールを送信するにはどうすればよいですか?パスワードはどこに置きますか?

完全なチュートリアルはここにあります... http://www.web-development-blog.com/archives/send-e-mail-messages-via-smtp-with-phpmailer-and-gmail/

これには、GmailとPHPMailerを介してメールを送信するための完全なチュートリアルがあります。これからの抜粋は次のとおりです。


1)お持ちでない場合は、GMailアカウントを登録するか、Googleアプリケーション用にドメインを設定してください。

2) PHPMailerの最新バージョンをダウンロードします(バージョン5.02を使用しています)

3)ポート465(TCP出力)が開いていることをWebホスティングプロバイダーに確認します。開いていない場合は、そのポートを開くように依頼します

4) PHPMailerクラスファイルを含めます。

require_once('phpmailer/class.phpmailer.php');

5) GMailのログインとパスワードを保存するために、これら2つの定数変数を作成します。Google Appsメールアカウントをお持ちの場合は、ログインを使用してください。

define('GUSER', 'you@gmail.com'); // GMail username
define('GPWD', 'password'); // GMail password

6)次の関数を使用して、電子メールメッセージを送信します(含まれているファイルの1つに関数を追加します)。

function smtpmailer($to, $from, $from_name, $subject, $body) { 
    global $error;
    $mail = new PHPMailer();  // create a new object
    $mail->IsSMTP(); // enable SMTP
    $mail->SMTPDebug = 0;  // debugging: 1 = errors and messages, 2 = messages only
    $mail->SMTPAuth = true;  // authentication enabled
    $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
    $mail->Host = 'smtp.gmail.com';
    $mail->Port = 465; 
    $mail->Username = GUSER;  
    $mail->Password = GPWD;           
    $mail->SetFrom($from, $from_name);
    $mail->Subject = $subject;
    $mail->Body = $body;
    $mail->AddAddress($to);
    if(!$mail->Send()) {
        $error = 'Mail error: '.$mail->ErrorInfo; 
        return false;
    } else {
        $error = 'Message sent!';
        return true;
    }
}

関数内のほとんどの設定はGMailで必要です。PHPmailerのチュートリアルを検索しているときに、ポートとセキュリティの設定が異なる記事を見つけました。私のアドバイスは、このチュートリアルの設定を使用することです。

7)コード内で関数を呼び出します。

smtpmailer('to@mail.com', '', 'from@mail.com', 'yourName', 'test mail message', 'Hello World!');

アプリケーション内でこのより「高度な」使用法を使用します。

if (smtpmailer('to@mail.com', 'from@mail.com', 'yourName', 'test mail message', 'Hello World!')) {
    // do something
}
if (!empty($error)) echo $error;
于 2013-01-31T15:32:25.290 に答える
0

XPでは、数年前、ArgosoftMiniMailServerをインストールしていました。

SMTPログを見ることができるので、Gmailや外部のものよりもそれを好みました。localhostPHPコードのようにSMTPを定義するだけです。

于 2013-01-31T15:27:52.450 に答える
0

phpsendmail関数を介して電子メールを送信するようにphp.iniファイルを構成する必要があります。

  1. php.iniファイルを開きます。

デフォルトのphp.iniファイル設定

【メール機能】; Win32の場合のみ。; http://php.net/smtp SMTP = localhost; http://php.net/smtp-port smtp_port = 25

; Win32の場合のみ。; http://php.net/sendmail-from sendmail_from = you @ yourdomain

; Unixの場合のみ。引数を指定することもできます(デフォルト: "sendmail -t -i")。; http://php.net/sendmail-path ; sendmail_path =

これらのエントリは、メールサーバーから任意のメールクライアントにメールを送信するために必要です。

2.次の2行は存在しません。

auth_username auth_password

認証が必要なサーバーからメールを送信するには、それらを追加する必要があります。

  1. SMTP設定を変更する

smtp_server =mail.example.com///SMTPサーバー名。smtp_port = 26//SMTPポート番号auth_username=username@example.com auth_password = password sendmail_from =you@example.com//メールアドレスから。

4.php.iniファイルを保存します。

  1. サーバーを再起動します。

  2. 終わり。

于 2013-01-31T15:34:00.157 に答える