web-dev-qa-db-ja.com

ウェブサイトのSMTPサーバーとしてGmailを使用できますか

こんにちは私はウェブサイトを立ち上げて実行しようとしています。現在AWSでホストされているため、現時点では独自のSMTPサーバーを実行していません。したがって、いくつかの記事を読んだ後、私たちはgmailをsmtpサーバーとして使用できることを理解しました。

読んだ内容が正しいかどうかを再確認したかったのですが、スマートジョブボードソフトウェアを使用します。Gmailが提供する値をプラグインしてSMTPサーバーとして使用できますか?

10
macha

はい、GoogleはSMTPを介した接続を許可し、GMailアカウントからメールを送信することを許可しています。

使用できるPHPメールスクリプトはたくさんあります。最も人気のあるSMTP送信者のいくつかは次のとおりです。 PHPMailer (便利な チュートリアル =)および SWIFTMailer (およびそれらの チュートリアル )。

接続してサーバーからメールを送信するために必要なデータは、 GMail アカウント、passwordSMTP server(この場合はsmtp.gmail.com)、およびポートです。 (この場合は465)また、電子メールがSSL経由で送信されていることを確認する必要があります。

PHPMailer でそのような電子メールを送信する簡単な例:

<?php
    require("class.phpmailer.php");

    $mail = new PHPMailer();

    $mail->IsSMTP();  // telling the class to use SMTP
    $mail->SMTPAuth   = true; // SMTP authentication
    $mail->Host       = "smtp.gmail.com"; // SMTP server
    $mail->Port       = 465; // SMTP Port
    $mail->Username   = "[email protected]"; // SMTP account username
    $mail->Password   = "your.password";        // SMTP account password

    $mail->SetFrom('[email protected]', 'John Doe'); // FROM
    $mail->AddReplyTo('[email protected]', 'John Doe'); // Reply TO

    $mail->AddAddress('[email protected]', 'Jane Doe'); // recipient email

    $mail->Subject    = "First SMTP Message"; // email subject
    $mail->Body       = "Hi! \n\n This is my first e-mail sent through Google SMTP using PHPMailer.";

    if(!$mail->Send()) {
      echo 'Message was not sent.';
      echo 'Mailer error: ' . $mail->ErrorInfo;
    } else {
      echo 'Message has been sent.';
    }
?>
6
Mihai Iorga

GmailSMTPサーバーを正常に使用しました。

私たちは企業のGMailアカウントを持っていますが、それは問題ではないと思います。個人のGMailアカウントで十分です。

私はPHPサンプルを持っていませんが、ASP.Netの次の構成は適切なガイダンスを提供するはずです:

<mailSettings>
  <smtp from="[email protected]">
    <network enableSsl="true" Host="smtp.gmail.com" port="587" userName="[email protected]" password="mypassword" />
  </smtp>
</mailSettings>

誰かが適切なPHPサンプルを持っている場合は、私の答えを編集するか、自分の答えを投稿してください

6
Eric J.

認証が必要だと思いますが、なぜそうなのかわかりません。私はあなたのために調査をしませんが、調べるべきことがいくつかあります:

  • それらのSMTPサーバーはTLS暗号化を必要とし、非標準ポート(995)でホストされています。 AWSがSMTPアウトバウンドに対してこれらのオプションの両方をサポートしていることを確認する必要があります。
  • スパムとしてマークされる前に送信できる電子メールにはおそらく上限があります。これを調査して、要件を超えていないことを確認する必要があります。
2
regex

技術的にはGmailをSMTPサーバーとして使用できますが、大規模なWebサイトにはお勧めしません。 「4214.7.0一時的なシステムの問題」などの問題が発生する場合がありますが、これはアプリケーションで使用するように設計されたものではなく、1人で使用するように設計されたものです。

上記のエラーメッセージに関連する問題: Gmail SMTPエラー-一時的なブロック?

0
sajtdavid

このジョブには PHPMailer class を使用できます。また、SMTPを簡単に構成できます。

構成例

if (class_exists(@PHPMailer)) {
    $smtp_mail  = new PHPMailer();
    $smtp_mail->isSMTP();
    $smtp_mail->SMTPAuth   = true;                  // enable SMTP authentication
    $smtp_mail->SMTPSecure = "ssl";                 // sets the prefix to the servier
    $smtp_mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
    $smtp_mail->Port       = 465;                   // set the SMTP port
    $smtp_mail->Username   = "[email protected]";  // GMAIL username
    $smtp_mail->Password   = "password";            // GMAIL password
    $smtp_mail->From       = "[email protected]";
    $smtp_mail->FromName   = "Name";
    $smtp_mail->AltBody    = "This is the body when user views in plain text format"; //Text Body
    $smtp_mail->WordWrap   = 50; // set Word wrap
    $smtp_mail->AddReplyTo("[email protected]","Name");
    $smtp_mail->isHTML(true); // send as HTML
}
0
user1329212