2009-09-03 15 views
3

弊社ウェブサイトに匿名のフィードバックフォームを設定するプロジェクトがあります。私はphpフォームからGmailを送ってください

にフィードバックし、ボタンのフィールド(社員に配る)一般的な考え方は、私はパスワードフィールドを持っているということであるPHP

とそれで行くを持っていると思ったアイブ氏は、このコードを見て

<?php 
$to = "[email protected]"; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 
if (mail($to, $subject, $body)) { 
    echo("<p>Message successfully sent!</p>"); 
} else { 
    echo("<p>Message delivery failed...</p>"); 
} 
?> 

しかし、(私はしませんオープンサーバーのどこかを持っていない限り)私はちょうど電子メールを送信することはできませんので、私はにログオンする必要があります私の制限の理解のメールシステムとかなり確信してイムと電子メールをスニペットサーバー(私の場合はgmailsサーバー)

だからホw私はこれをするだろうか?

更新:

上記のコードでは、作業を行いますが、それは私たちが現在のGoogle BIZのアプリを使用して、企業アカウント から来ていないと私は送信するために、Googleのサーバーにログオンしたい理由ですこれはアウト。

+0

gmailを使って送信する場合は、自動スクリプトを設定するか、APIがあるかどうか確認する必要があります。 – dusoft

+0

不要、@dusoft。 – ceejayoz

答えて

5

がに見てくださいを参照してくださいあなた

用に設定されています与えられた例は正常に動作します。あなたがまともなWebホスティングをしているなら、それはうまくいくでしょう。

開発マシンを使用している場合は、ローカルメールサーバーを設定し、別のメールサーバー経由で電子メールを送信するようにメールサーバーを構成できます。それは通常、スマートホストと呼ばれていると思います。ほとんどのLinuxメールサーバ(exim、postfixなど)はこのように設定できます。このようにしてWindowsマシンにメールサーバーをインストールして設定できることは間違いありません。 Xamppは1つ持っていると思います。

実際にPHPを使用して電子メールサーバーに電子メールを直接送信する場合は、ライブラリを使用できます。個人的には、私はswiftmailerを使用します。

http://swiftmailer.org/ http://phpmailer.worxware.com/

彼らはあなたではなく、単にローカルメールサーバーよりも、あなたが好きなSMTPサーバーを使用することができます。

0

あなたの理解は少し余りにも限られているようです。インターネットに接続されているどこからでもメールを送ることができます。

+0

どこにでもありません。私は動的に割り当てられたIPアドレスを持っているので、多くのメールサーバーは私にメールを送信できません。例えば ​​'gmail.com'は私のIPアドレスをブロックし、SMTPエラーを出します。 – Inshallah

+0

mail.gmail.comは静的IPと動的IPをどのように区別しますか? –

+0

@Totland SPFとSMTPのダイヤルバックを参照してください。 – bucabay

1

スクリプトを適切なWebホストで実行している場合、送信メールを送信するためのすべての設定が行われます。それは本当にそこに示されているように簡単です。

ISPが自宅でサーバを実行している場合、ISPはISPの仲介サーバを経由する以外は家のアカウントからのメールの送信をブロックすることが多いため、少し複雑になります。

0

あなたのコードは、サーバーがあなたのために構成された場合は、通常は)(メールを使用することができます場合ではSwiftMailer

0

のようなサードパーティのメーラーを、スパム乱用に開いている何の入力フィルタリングを持っていない、その最高。

サーバからGmailを介してメールを送信するには、SMTP経由でGmailメールサーバ(MTA)にメールを送信する必要があります。

mail()関数は、SMTPを使用するように、またはサーバー上でsendmailバイナリを使用するように構成できます。それはあなたのウェブホストにそれをするように頼むことが最善です。自分でやりたければ、PHP.iniを編集する必要があります。

Sendmailは電子メールを送信するためのコマンドラインインターフェイスを持つデーモンです。 (注:すべての電子メールはSMTP経由で送信され、sendmailはあなたのためにそのビットを行います)。

まず、sendmailプログラムをGoogleメールサーバー認証方法とユーザー名とパスワードで構成する必要があります。これは、使用するsendmailプログラムに固有のものです。 その後、PHP.ini経由でsendmailプログラムを使用するようにPHPを設定する必要があります。特定の指示が必要な場合は、それを掲示することができます。

Googleには、PHP.iniに入れられないTLSと認証パラメータ(ユーザー/パス)が必要なので、この場合はSMTPを直接使用するようにPHPを設定することはできません。

注:PHPドキュメントでは、sendmailはLinux用であり、SMTPはWindows専用です。これは正しくありません。あなたはsendmailを使うようにWindows上にPHPを、そしてSMTPを使うためにlinuxを設定することができます。 Windows版のsendmailが必要なだけで、linuxにはデフォルトでsendmailが付属しているので、本当にSMTPは必要ありません。 PHPはシングルスレッドであり、SMTPトランザクションが完了するのを待たなければならないのに対し、Sendmailはメールをキューに追加するので、通常はより良い選択です。

関連する問題