web-dev-qa-db-ja.com

php.ini&SMTP =-ユーザー名とパスワードを渡す方法

My ISPアカウントでは、送信SMTPメール用のユーザー名とパスワードを送信する必要があります。

php.mail()?を実行するときにPHPを使用してphp.iniファイルに含まれるのは、サーバー(SMTP= )およびFrom: (sendmail_from= )のエントリのみです。

64
Charles Faiga

PHP mail()コマンドは認証をサポートしていません。あなたのオプション:

  1. PHPMailer - チュートリアル
  2. PEAR - チュートリアル
  3. カスタム関数-ノートセクションのさまざまなソリューションを参照してください。 http://php.net/manual/en/ref.mail.php
40
daremon

Php.iniファイルに次の詳細を適用します。うまく動作します。

SMTP = smtp.example.com
smtp_port = 25
username = [email protected]
password = yourmailpassord
sendmail_from = [email protected]

これらの詳細は、Outlookの設定と同じです。

40
sugunan

Windows用の偽のsendmail を使用してメールを送信します。

  1. C:\wamp\sendmailという名前のフォルダーを作成します。
  2. これらの4つのファイルをsendmailフォルダーに抽出します:sendmail.exelibeay32.dllssleay32.dll、およびsendmail.ini
  3. 次に、C:\wamp\sendmail\sendmail.iniを構成します。
smtp_server=smtp.gmail.com
smtp_port=465
[email protected]
auth_password=your_password
  1. 上記はGmailアカウントに対して機能します。そして、php.iniを構成します。

    sendmail_path = "C:\ wamp\sendmail\sendmail.exe -t"

  2. 次に、Apacheを再起動します。これで基本的に必要なことはすべてです。

17
Henrik Rosvall

PHP doesメールコマンドで認証を行います!

以下はWAMPSERVERで動作しています(Windows、PHP 5.2.17)

php.ini

[mail function]
; For Win32 only.
SMTP = mail.yourserver.com
smtp_port = 25
auth_username = smtp-username
auth_password = smtp-password
sendmail_from = [email protected]
12
blavla

PHPMailer ツールはPEARを必要としないため、私は好みです。しかし、どちらにしても、誤解があります。SMTPユーザーとパスワードのPHPサーバー全体の設定は必要ありません。これはアプリごと(またはページごと)に設定する必要があります。異なるPHPページで同じアカウントを使用する場合は、ある種のsettings.phpファイルに追加します。

5
Eric_WVGG

これに終日取り組んだ後、私は最終的に解決策を見つけました。 WAMPを使用してWindows XPから送信する方法は次のとおりです。

  1. GoogleのSMTPサーバーを使用します。おそらくアカウントが必要です。
  2. ダウンロードしてインストールします Fake Sendmail 。ダウンロードして解凍し、WAMPフォルダに入れました。
  3. テストPHPファイルを作成します。下記参照。
<?php
    $message = "test message body";
    $result = mail('[email protected]', 'message subject', $message);
    echo "result: $result";
?>
  1. Php.iniファイルとsendmail.iniファイルを更新します(sendmail.iniはsendmailフォルダーにあります)。
  2. 機能しない場合は、作成したsendmailフォルダーのerror.logファイルを確認します。

参照:

5
B Seven
  1. Postfix(Sendmail互換)をインストールします。
  2. /etc/postfix/main.cfを編集して読む:
#Relay config
relayhost = smtp.server.net
smtp_use_tls=yes
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_sasl_security_options = noanonymous
  1. /etc/postfix/sasl_passwdを作成し、次を入力します。
smtp.server.net username:password
  1. タイプ#/usr/sbin/postmap sasl_passwd

  2. 次に実行:service postfix reload

これで、PHPは通常どおりsendmail -t -iコマンドでメールを実行し、Postfixはそれをインターセプトして、指定したSMTPサーバーに中継します。

5
Jay Sudo

Mail PEARパッケージのMail :: factoryを使用します。

2
William Keller

これらの答えは時代遅れであり、価値が低くなっています。ベストプラクティス..

composer require phpmailer/phpmailer

Sendmail.phpファイルの次は、次のものが必要です。

# use namespace
use PHPMailer\PHPMailer\PHPMailer;

# require php mailer
require_once "../vendor/autoload.php";

//PHPMailer Object
$mail = new PHPMailer;

//From email address and name
$mail->From = "[email protected]";
$mail->FromName = "Full Name";

//To address and name
$mail->addAddress("[email protected]", "Recepient Name");
$mail->addAddress("[email protected]"); //Recipient name is optional

//Address to which recipient will reply
$mail->addReplyTo("[email protected]", "Reply");

//CC and BCC
$mail->addCC("[email protected]");
$mail->addBCC("[email protected]");

//Send HTML or Plain Text email
$mail->isHTML(true);

$mail->Subject = "Subject Text";
$mail->Body = "<i>Mail body in HTML</i>";
$mail->AltBody = "This is the plain text version of the email content";

if(!$mail->send()) 
{
    echo "Mailer Error: " . $mail->ErrorInfo;
} 
else 
{
    echo "Message has been sent successfully";
}

これは好きなように設定できます。

2
Delino
  1. 最新の hMailServer をインストールします。最後の手順で「hMailServer Administratorを実行」。
  2. 「localhost」に接続します。
  3. 「ドメインを追加...」
  4. 「127.0.0.1。」を設定します「ドメイン」として、「保存」をクリックします。
  5. 「設定」>「プロトコル」>「SMTP」>「電子メールの配信」
  6. 「ローカルホスト名」として「localhost」を設定し、「SMTP Relayer」セクションにデータを提供します、「保存」をクリックします。
  7. [設定]> [詳細設定]> [IP範囲]> [マイコンピュータ]
  8. [SMTP認証が必要]グループの[外部から外部の電子メールアドレス]チェックボックスを無効にします。
  9. Php.iniを変更した場合は、次の3つの値を書き換えます。

「SMTP = localhost」、

「smtp_port = 25」、

";sendmail_path ="。

クレジット: Gmailを使用して電子メールを送信するためのWAMP(localhost)の設定方法

0
Tamás Bolvári

この質問 で1つの答えを考えると、PHP 4ではPEAR Mailパッケージは通常既にインストールされています。この本当に簡単なチュートリアルでは、数行のコードを示しますphpファイルに追加する必要がある http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm

0
Alex Jolig