web-dev-qa-db-ja.com

xamppでのphpメールのセットアップ

私はPHPを学んでいて、私のコンピューターにXamppをインストールしました。

しかし、メールオプションが機能していないように見えるため、セットアップに問題があります。

いくつかの読書をした後、私はそれが私のサーバーのphp.iniファイルにある以下と関係があると思います

[mail function]   
; For Win32 only.   
; *hp://*php.net/smtp   
SMTP = localhost  
; http://php.net/smtp-port   
smtp_port = 25   

; For Win32 only.   
; http://php.net/sendmail-from   
;sendmail_from = postmaster@localhost   

[ハイパーリンクを投稿するこのウェブサイトの制限のため、上記のhp://をhttp://から変更したことに注意してください]

変更する必要があるものはありますか?前述のswiftmailerなどのソフトウェアを見たことがありますが、Xamppにこれがすでに含まれているかどうかわかりませんか?どんなヒントでも大歓迎です!

ありがとうジェームス

24
James

私のお気に入りのsmtpサーバーは hMailServer です。

素敵なWindowsフレンドリーインストーラーとウィザードがあります。私が今までセットアップした中で最も簡単なメールサーバーを伝えます。

Gmail/yahoo/etcアカウントを介してプロキシするか、直接メールを送信できます。

一度インストールされると、xamppの電子メールは設定変更なしで機能します。

14
Byron Whitlock

XAMPPには「偽の」sendmailプログラムが付属しているはずです。その場合、sendmailも使用できます。

[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP = localhost
; http://php.net/smtp-port
;smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:/xampp/sendmail/sendmail.exe -t -i"

Sendmailにはsendmail.ini それと;次のように構成する必要があります。

# Example for a user configuration file

# Set default values for all following accounts.
defaults
logfile "C:\xampp\sendmail\sendmail.log"

# Mercury
#account Mercury
#Host localhost
#from postmaster@localhost
#auth off

# A freemail service example
account ACCOUNTNAME_HERE
tls on
tls_certcheck off
Host smtp.gmail.com
from EMAIL_HERE
auth on
user EMAIL_HERE
password PASSWORD_HERE

# Set a default account
account default : ACCOUNTNAME_HERE

もちろん、ACCOUNTNAME_HEREを任意のアカウント名に置き換え、EMAIL_HEREを有効なメール(GmailやHotmailなど)に置き換え、PASSWORD_HEREをメールのパスワードに置き換えます。これで、メールを送信できるはずです。 Apacheを(コントロールパネルまたはバッチファイルから)必ず再起動して、PHPへの変更を有効にします。

9
kevinji

ローカルコンピューターにメールサーバーをセットアップしていない限り、SMTP = localhostを設定しても効果はありません。

(昔)SMTPの値をISPのSMTPサーバーのアドレスに設定するだけで十分でした。ほとんどのISPはユーザー名とパスワードを使用した認証を要求するため、これはほとんど機能しません。ただし、PHP mail()関数はSMTP認証をサポートしていません。ローカルサーバーのメールトランスポートエージェントと直接連携するように設計されています。

ローカルメールサーバーを設定するか、Zend_MailやPHPMailerなどのSMTP認証をサポートするPHPクラスを使用する必要があります。ただし、最も簡単な解決策は、メール処理スクリプトをリモートサーバー。

5
David Powers