PHP を使用してメールを送信します。私のPHPは共有ホスト上にあるはずです。PHP 経由でメールを送信するコードを見つけましたが、PHP コードに直接パスワードを書き込むのが心配です。PHP または GMail SMTP サーバーは、直接パスワードの使用を回避する方法を提供していますか? 多分API認証に似たものですか?
2 に答える
このサービスはすべて認証を必要とするため、Google などの SMTP サーバーに実際にメールを送信しようとしたことはありません。Github には、このような素晴らしいプロジェクトがいくつかあります。これにより、セキュア ポート、認証、SSL などを使用して SMTP 経由で電子メールを送信できます (php ファイルはサーバー側であるため、ユーザーはこの情報にアクセスできないことに注意してください。パスは安全。)
リポジトリにアクセスすると、サンプルが見つかります。
<?php
require 'class.phpmailer.php';
$mail = new PHPMailer;
$mail->IsSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup server
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'jswan'; // SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable encryption, 'ssl' also accepted
$mail->From = 'from@example.com';
$mail->FromName = 'Mailer';
$mail->AddAddress('josh@example.net', 'Josh Adams'); // Add a recipient
$mail->AddAddress('ellen@example.com'); // Name is optional
$mail->AddReplyTo('info@example.com', 'Information');
$mail->AddCC('cc@example.com');
$mail->AddBCC('bcc@example.com');
$mail->WordWrap = 50; // Set word wrap to 50 characters
$mail->AddAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->AddAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$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 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
exit;
}
echo 'Message has been sent';
しかし、php コントローラーでパスワードをハードコーディングしたくない場合や、メールを処理するために使用する必要があるものを使用したくない場合は、いつでもphp でmail()関数を使用してメールを送信できます。
ドキュメントの簡単なサンプル検索:
<?php
$to = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
この機能は電子メールを送信するための SMTP 方法ですが、認証は常に必要ですが、この場合はサーバーで行われるため、適切な電子メールを送信できるようにすべてのヘッダーを設定する必要があります。
一部のサーバー プロバイダーは、この関数を使用して電子メールを声に出して送信しないことに注意してください。そのため、最終的には、電子メールを処理するために php SMTP 電子メール クラスを作成または使用する必要があり、このファイルには認証のためのパスワードが必要です。
PHP はサーバー側で実行されるため、パスワードを公開しないでください。共有ホスティングとは、サーバーを文字通り誰かと共有しているという意味である場合、Gmail smtp にはパスワードが必要なため、Gmail アカウントのパスワードが盗まれる可能性があります。ただし、サーバー ホストが発信 smtp サーバーを提供している場合は、パスワードは必要ないため、パスワードについて心配する必要はほとんどありません。