localhostからメールを送信しようとしています。しかし、ローカルホストからメールを送信できないので、ローカルホストからメールを送信するようにxamppを再構成する方法を誰かに教えてもらえますか
localhostからメールを送信しようとしています。しかし、ローカルホストからメールを送信できないので、ローカルホストからメールを送信するようにxamppを再構成する方法を誰かに教えてもらえますか
回答:
sendmailパッケージを使用してlocalhostからメールを送信できます。sendmailパッケージはXAMPPに組み込まれています。したがって、XAMPPを使用している場合は、localhostからメールを簡単に送信できます。
たとえば、あなたが設定することができますC:\xampp\php\php.ini
し、c:\xampp\sendmail\sendmail.ini
Gmailのメールを送信します。
localhostのgmailでSSLを機能させるには、その行の先頭からセミコロンをC:\xampp\php\php.ini
見つけextension=php_openssl.dll
て削除します。
php.iniファイルで検索[mail function]
して変更
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = my-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
今すぐ開くC:\xampp\sendmail\sendmail.ini
。sendmail.iniの既存のコードをすべて次のコードに置き換えます
[sendmail]
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=my-gmail-id@gmail.com
auth_password=my-gmail-password
force_sender=my-gmail-id@gmail.com
これで完了です!メール機能でphpファイルを作成し、localhostからメールを送信します。
PS:上記のコードでmy-gmail-idと my-gmail-passwordを置き換えるのを忘れないでください。また、上から設定をコピーした場合は、重複するキーを削除することを忘れないでください。たとえば、php.iniファイルに別のsendmail_path:がある場合、次の行のコメントsendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
また、XAMMPコントロールパネルを使用してサーバーを再起動し、変更を有効にしてください。
Gmailの場合は、https: //support.google.com/accounts/answer/6010255を確認して、安全性の低いアプリからのアクセスを許可してください。
Linuxで(sendmailパッケージを使用して)localhostからGmail経由でメールを送信するには、PHP + Ubuntu Gmailのlocalhostを使用してメールを送信するを確認してください。
XAMPP v3.2.1では、テストのために、XAMPPがXAMPP / mailoutputで送信するメールを確認できます。Windows 8での私の場合、これは追加の構成を必要とせず、電子メールをテストするための簡単な解決策でした
c:\xampp\php\php.ini
を探して[mail function]
、と記載されている行のコメントを外してくださいmailtodisk.exe
。このセクションでは、mail.add_x_header
1 行を除いて、他のすべての行をコメント化してください。
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe"
ローカルホストまたはローカルサーバーでメールを送信するのは非常に簡単です
注:XamppがインストールされたWindows 7 64ビットでテストメールサーバーソフトウェアを使用しています
テストメールサーバーツールをダウンロードし、ウェブサイトのテストメールサーバーツールの指示に従ってインストールするだけです。
今、あなたはphp.ini
ファイルの下の2行だけを変更する必要があります
[mail function]
以前のセミコロンを見つけて削除します;smtp = localhost
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
他に何も変更する必要はありませんが、を確認するよりもメールが届かない場合SMTP port
は、ポート番号が同じである必要があります。
上記の方法は、Xamppソフトウェアによって提供されるデフォルト設定用です。
このシンプルなアプリケーションであるPapercutを使用して、メールの送信をテストしてください。何も設定する必要はありません。
実行して、メールのテスト送信を試してください。
test_sendmail.php
<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";
mail($to,$subject,$txt,$headers);
?>
これが表示されます:
良い一日をお過ごしください。Youtubeでもっと多くのチュートリアルPiseth Sokを見つけてください
元気!
サーバーでSMTPを構成する必要があります。G Suite SMTP by Googleを無料で使用できます。
<?php
$mail = new PHPMailer(true);
// Send mail using Gmail
if($send_using_gmail){
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "your-gmail-account@gmail.com"; // GMAIL username
$mail->Password = "your-gmail-password"; // GMAIL password
}
// Typical mail data
$mail->AddAddress($email, $name);
$mail->SetFrom($email_from, $name_from);
$mail->Subject = "My Subject";
$mail->Body = "Mail contents";
try{
$mail->Send();
echo "Success!";
} catch(Exception $e){
// Something went bad
echo "Fail :(";
}
?>
私の個人的な経験と同様に、Vikas Dwivediの回答と非常によく似たものがうまく機能することがわかりました。
ステップ1(php.iniファイル)
にあるphp.iniファイルxampp\php\php.ini
。設定を次のように変更します。
extension=php_openssl.dll
[mail function]
sendmail_path =":\xampp7\sendmail\sendmail.exe -t"
mail.add_x_header=On
それらの前にmail funciton
置くことにより、他の変数をオフ;
にします。例えば;smtp_port=25
ステップ2(sendmail.iniファイル)
xampp \ sendmail \ semdmail.iniにあるsendmail.iniで、次のように変更します。
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
auth_username=address@gmail.com
auth_password=YourPassword
ステップ3(コード)
phpファイルを作成し、以下を使用します。
<?php
mail($to, "subject", "body", "From: ".$from);
?>
通知
このコードは、localhost XAMPPとGmailアカウントからのメールに使用されます。このコードは非常に簡単で、私にとってはあなた自身を試してみてください。
php.iniファイルの以下の変更
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = your@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
extension=php_openssl.dll
sendmail.iniファイルの変更の下
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=yourmail@gmail.com
auth_password=your-gmail-password
force_sender=yourmail@gmail.com
電子メールを送信するには、PHPファイルにbeloveコードを記述してください
<?php
$to = "tomail@gmail.com";
$subject = "Test Mail";
$headers = "From: from_mail@gmail.com\r\n";
$headers .= "Reply-To: replytomail@gmail.com\r\n";
$headers .= "CC: theassassin.edu@gmail.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = '<html><body>';
$message .= '<img src="//css-tricks.com/examples/WebsiteChangeRequestForm/images/wcrf-header.png" alt="Website Change Request" />';
$message .= '<table rules="all" style="border-color: #666;" cellpadding="10">';
$message .= "<tr style='background: #eee;'><td><strong>Name:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>Email:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>Type of Change:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>Urgency:</strong> </td><td>Details</td></tr>";
$message .= "<tr><td><strong>URL To Change (main):</strong> </td><td>Details</td></tr>";
$addURLS = 'google.com';
if (($addURLS) != '') {
$message .= "<tr><td><strong>URL To Change (additional):</strong> </td><td>" . $addURLS . "</td></tr>";
}
$curText = 'dummy text';
if (($curText) != '') {
$message .= "<tr><td><strong>CURRENT Content:</strong> </td><td>" . $curText . "</td></tr>";
}
$message .= "<tr><td><strong>NEW Content:</strong> </td><td>New Text</td></tr>";
$message .= "</table>";
$message .= "</body></html>";
if(mail($to,$subject,$message,$headers))
{
echo "Mail Send Sucuceed";
}
else{
echo "Mail Send Failed";
}
?>
このためのSMTP
サーバーとポートを定義する必要があります。ライブホストからのメール送信を除いてすべて。
注意:ポートは使用しないでください。のような一部のアプリケーション
Skype
はデフォルトのポートを使用しているため、メールを送信できないことに注意してください。
この作業を行うために1時間以上費やしました。投稿されたすべての提案が機能しないために同じ問題を抱えているすべての人のために:XAMPPインターフェイスでApacheを再起動する必要があります!XAMPPを再起動するだけでは機能しません!!
XAMPP Localhostからメールを送信する方法をいろいろ試しましたが、XAMPPにはSSL証明書がないため、私のメールリクエストはGmailまたは同様のSMTPサービスプロバイダーによってブロックされています。
次に、ローカルのSMTPサーバーにMailHogを使用しました。これを実行するだけです。localhost:1025はsmtpサーバー用、localhost:8025はメールサーバー用で、送信した電子メールを確認できます。
これが私のコードです:
require_once "src/PHPMailer.php";
require_once "src/SMTP.php";
require_once "src/Exception.php";
$mail = new PHPMailer\PHPMailer\PHPMailer();
//Server settings
$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Send using SMTP
$mail->Host = 'localhost'; // Set the SMTP server to send through
$mail->Port = 1025; // TCP port to connect to
// $mail->Username = ''; // SMTP username
// $mail->Password = ''; // SMTP password
// $mail->SMTPAuth = true; // Enable SMTP authentication
// $mail->SMTPSecure = 'tls'; // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` also accepted
//Recipients
$mail->setFrom('testtoo@testto.com', 'Mailer');
$mail->addAddress('testtoo@webbamail.com', 'Joe User'); // Add a recipient
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
すべての回答に加えて、sendmail.ini
ファイルに注意してください:
auth_password = this- is- Not -your-Gmail-password
新しいGoogleのセキュリティ上の懸念があるため、この目的でアプリケーションパスワードを作成するには、次の手順に従ってください。