web-dev-qa-db-ja.com

コアphp mail()を使用してGmail SMTP経由で送信する

外部クラスを使用せずにGmailのSMTPを介してコアPHPでメールを送信することはできますか?

16
Darshita

認証を行う必要があるので可能ではないと思います。また、SSLソケット経由で接続する必要があります。stockmail()関数がこれをサポートしているかどうかはわかりません。

Pear Mail パッケージを使用する場合は、以下をご覧ください。

PHPページ からGMail SMTPサーバーを使用してメールを送信する

5
Pierre-Olivier

これについては多くの誤解があります。 PHPの単純な「mail()」コマンドを介してGmailを使用してメールを送信することは100%可能です。 そしてそれは100%簡単です。

SSMTPをインストールします:

Sudo apt-get install ssmtp

設定ファイルを編集します:

Sudo nano /etc/ssmtp/ssmtp.conf

内部では、これをに似ていますが、独自の資格情報を使用します:

mailhub=smtp.gmail.com:587
[email protected]
AuthPass=password
UseSTARTTLS=YES

# You can only do this if you've verified your domain with Gmail.
# If you haven't, delete, or add a # before this
hostname=yourwebsite.com

FromLineOverride=YES

最後に、php.iniを開き、sendmail_pathを検索して使用しますこの値:

sendmail_path = /usr/sbin/ssmtp -t

それでおしまい!単純な1行のメール関数を使用して、PHPでテストしてください:

mail('[email protected]', 'Subject', 'Message', 'From: Your name <[email protected]>');

Gmailのセキュリティに関する更新

Gmailはデフォルトでこれをブロックするようになりました。次のURLにアクセスすると、これを行うことができます。 http://www.google.com/settings/security/lesssecureapps

この機能をオンにします[〜#〜]オン[〜#〜]

21
gavanon

Php.iniの設定を変更する必要がありますが、 PHPマニュアル を参照してください。 ini_set で実行時にphp.ini設定を変更できます

4
mensi

php.iniを編集するアクセス権がある場合は、次のようなことができます。

[mail function]
SMTP = ssl://smtp.gmail.com
smtp_port = 465
username = [email protected]
password = myemailpassword
sendmail_from = [email protected]

または、次のようにすることもできます。

<?php
ini_set( 'smtp_port', 465 );
//etc
0
Dave Goodchild