My ISP
アカウントでは、送信SMTP
メール用のユーザー名とパスワードを送信する必要があります。
php.mail()?
を実行するときにPHP
を使用してphp.ini
ファイルに含まれるのは、サーバー(SMTP= )
およびFrom: (sendmail_from= )
のエントリのみです。
PHP mail()
コマンドは認証をサポートしていません。あなたのオプション:
Php.iniファイルに次の詳細を適用します。うまく動作します。
SMTP = smtp.example.com
smtp_port = 25
username = [email protected]
password = yourmailpassord
sendmail_from = [email protected]
これらの詳細は、Outlookの設定と同じです。
Windows用の偽のsendmail を使用してメールを送信します。
C:\wamp\
にsendmail
という名前のフォルダーを作成します。sendmail
フォルダーに抽出します:sendmail.exe
、libeay32.dll
、ssleay32.dll
、およびsendmail.ini
。C:\wamp\sendmail\sendmail.ini
を構成します。smtp_server=smtp.gmail.com smtp_port=465 [email protected] auth_password=your_password
上記はGmailアカウントに対して機能します。そして、php.iniを構成します。
sendmail_path = "C:\ wamp\sendmail\sendmail.exe -t"
次に、Apacheを再起動します。これで基本的に必要なことはすべてです。
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]
PHPMailer ツールはPEARを必要としないため、私は好みです。しかし、どちらにしても、誤解があります。SMTPユーザーとパスワードのPHPサーバー全体の設定は必要ありません。これはアプリごと(またはページごと)に設定する必要があります。異なるPHPページで同じアカウントを使用する場合は、ある種のsettings.phpファイルに追加します。
これに終日取り組んだ後、私は最終的に解決策を見つけました。 WAMPを使用してWindows XPから送信する方法は次のとおりです。
<?php $message = "test message body"; $result = mail('[email protected]', 'message subject', $message); echo "result: $result"; ?>
参照:
/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
/etc/postfix/sasl_passwd
を作成し、次を入力します。smtp.server.net username:password
タイプ#/usr/sbin/postmap sasl_passwd
次に実行:service postfix reload
これで、PHPは通常どおりsendmail -t -i
コマンドでメールを実行し、Postfixはそれをインターセプトして、指定したSMTPサーバーに中継します。
Mail PEARパッケージのMail :: factoryを使用します。 例
これらの答えは時代遅れであり、価値が低くなっています。ベストプラクティス..
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";
}
これは好きなように設定できます。
「SMTP = localhost」、
「smtp_port = 25」、
";sendmail_path ="。
この質問 で1つの答えを考えると、PHP 4ではPEAR Mailパッケージは通常既にインストールされています。この本当に簡単なチュートリアルでは、数行のコードを示しますphpファイルに追加する必要がある http://email.about.com/od/emailprogrammingtips/qt/PHP_Email_SMTP_Authentication.htm