3

通常のクライアントを使用してIMAPアカウントのSMTP経由で電子メールを送信すると、その送信電子メールはIMAPの[送信済み]ボックスに保存されます。

Ruby on Rails ActionMailerを使用してメールを送信するときに同じ動作をするにはどうすればよいですか?

4

2 に答える 2

6

Ruby IMAPライブラリには、appendこれらの送信メールを選択したフォルダに「保存」するために使用できるメソッドが含まれています。

# Let's assume the_mail is the Mail object you want to save
the_mail = Mail.new

# The name of the target mailbox
target_mailbox = 'Sent'

# Connect to the IMAP server
imap = Net::IMAP.new(YOUR_EMAIL_SERVER)
imap.authenticate('PLAIN', YOUR_LOGIN, YOUR_PASSWORD)  

# Create the target mailbox if it does not exist
imap.create(target_mailbox) unless imap.list('', target_mailbox)

# Save the message
imap.append(target_mailbox, the_mail.to_s)

# Close the connection
imap.logout
imap.disconnect

お役に立てれば!

于 2011-02-09T15:59:52.490 に答える
1

私の知る限り、これはメールクライアントプログラムの設定になる傾向があります。しかし、ActionMailerではあまりサポートされていません。

メッセージがサーバーに保存されているのに、間違った場所に保存されていることがわかった場合は、rubyIMAPライブラリがあります。http://ruby-doc.org/stdlib/libdoc/net/imap/rdoc/index.html

回避策は、たとえばsender@yourdomain.com、などのタグを使用して、すべてのメッセージを元の電子メールアドレスに送信sender+sent@yourdomain.comし、この受信トレイを表示するクライアントにルールを設定して、それを含むすべての電子メールをTO:[送信済みアイテム]ボックスにルーティングすることです。

RailsアプリケーションのメールサーバーとしてGmailを使用している場合は、送信されたメールにコピーが自動的に保存されます。

于 2010-04-30T20:45:53.107 に答える