回答:
ドメインにSPFレコードが設定されていても、ドメインに関連付けられたDKIMレコードがないという問題があることを発見しました。Google AppsでDKIMレコードを追加するには、次を実行する必要があります。
TXTレコードは2つの部分に分かれています。1つにはドメインがあり、もう1つには実際のTXTレコードがあります。ドメインのサーバーのDNS設定に移動して、このレコードを追加する必要があります。DNSコントロールパネルでのドメインを追加できない場合は、ドメインをのgoogle._domainkey
ように完全修飾するだけgoogle._domainkey.example.com
です。
これを行った後、DNSレコードに伝搬する時間を少し与えてから、Google Apps管理パネルで[認証を開始]をクリックします。緑色のチェックマークが表示されている場合は完了です。SMTPサーバーを介して電子メールが再び流れ始めるはずです。
送信する電子メールごとに認証しないでください。
プロセスの開始時:
Session session = loadSession();
Transport transport = session.getTransport("smtp");
transport.connect("example@gmail.com", "password");
その後、セッションを開始せずに各メールを送信するためにトランスポートオブジェクトを使用します。
transport.sendMessage(message, message.getAllRecipients());
すべてのメールを送信したら、接続を閉じる必要があります。
transport.close();
@ victorpacheco3107からのソリューションは私のために働いた、これは私がルビーでやったこと:
settings = {
address: "smtp.gmail.com",
port: 587,
domain: "mydomain.com",
user_name: "user@mydomain.com",
password: "password",
authentication: "plain"
}
smtp_conn = Net::SMTP.new(settings[:address], settings[:port])
smtp_conn.enable_starttls_auto
smtp_conn = smtp_conn.start(settings[:domain],
settings[:user_name],
settings[:password],
settings[:authentication])
Mail.defaults do
delivery_method :smtp_connection, { :connection => smtp_conn }
end
# send mails..
mail = Mail.new
mail.to('...')
# more mail stuff..
mail.deliver!
# after all mails are sent, end session
smtp_conn.finish
バルクメールを送信するときにSMTPを使用すると、すべてのメールにログインしてからログアウトします。そのため、Googleは接続をブロックします。私のために働いたのは、SMTPKeepAliveをtrueに設定することです。