2

アプリケーションにいくつかの自動メール送信タスクを設定しています。アプリケーション固有の電子メールを顧客に送信して、予定などを思い出させる毎日です。Gmail の smtp の使用は、単純なメッセージ以上の生産タスクに適していますか? Apache James などの独自の smtp サーバーを実装する利点はありますか?

4

2 に答える 2

2

Gmail TOS では、未承諾の商用メールを禁止しています。一般に、Gmail に依存するサービスを一般に公開することはありません。いずれにせよ、Gmail はメール受信者リストを 100 に制限していると思うので、同じメッセージを 100 人以上に送信しようとするとおそらく失敗するでしょう。

通常、評判上の理由から、送信メールには独自の IP が必要です。私がフリーランスの仕事をしているほとんどのクライアントには、http://sendgrid.com/のような手頃な価格のパートナー サービスをお勧めします。また、TOS に違反したために Gmail がシャットダウンすることを心配する必要はありません。また、Gmail は到達率に関する指標を提供しないため、これらの送信に成功しているかどうかはわかりません。

大手メール マーケターで働いていたので、最近は SMTP サーバーにメッセージを送信するだけでは十分ではないと言えます。すべての主要なメール サービス プロバイダーは、バルク メールに送信者識別キーを要求するなどのことを行っています。また、メッセージを測定し、特定の時間内に送信するメッセージが多すぎる送信者にフラグを付けます。メールを SPAM フォルダーに入れずに配信したい場合は、多くの作業を行い、専用 IP を使用して専用サーバーを起動するか、その作業の一部を行うことができるベンダーを使用する必要があります。

于 2012-08-11T15:45:00.643 に答える
1

私は@Richthofenに同意します-本番環境でgmailを使用してメールを送信することは悪い(そして非倫理的な)考えです。ここでは、Amazon SES または Sendgrid が最適なソリューションです。独自の SMTP サーバーを実行する場合は、アプリケーションとリソースを共有するため、おそらく速度が低下することに注意してください。

ただし、gmail を使用して、javamail API を使用して開発/テスト環境をテストしています。コードは次のとおりです。

public class EmailSender{

    public void send(){
      //javamail code
      Session mailSession = createSmtpSession();
      //javamail code
    }

    private Session createSmtpSession() {
        final Properties props = new Properties();
        props.setProperty ("mail.host", "smtp.gmail.com");
        props.setProperty("mail.smtp.auth", "true");
        props.setProperty("mail.smtp.port", "" + 587);
        props.setProperty("mail.smtp.starttls.enable", "true");
        props.setProperty ("mail.transport.protocol", "smtp");
        // props.setProperty("mail.debug", "true");

        return Session.getDefaultInstance(props, new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(
                    "<gmail ID in user@domain format goes here>", 
                    "<password goes here>");
            }
        });
    }
}
于 2012-08-11T16:05:38.560 に答える