[英]Rails ActionMailer copy email to sent folder SMTP ruby
您好,我可以使用發送郵件功能發送我想要的電子郵件,但是客戶端發送的文件夾中沒有顯示已發送的郵件。
我是否必須以某種方式手動將電子郵件復制到已發送文件夾? 配置如下,可以發送郵件,僅供參考
config.action_mailer.smtp_settings = {
address: 'send.XXX.com',
port: 587,
domain: 'XXX.com',
user_name: 'X@XXX.com',
password: 'XXX',
authentication: 'plain',
enable_starttls_auto: true }
我怎樣才能在 Rails 中做到這一點
更新
可以使用 IMAP 輕松完成,只需創建新郵件、Mail.new 等即可
target_mailbox = 'Inbox.Sent'
imap = Net::IMAP.new("imap.someserver.com")
imap.authenticate(email_account.authentication, email_account.user_name, email_account.password)
imap.create(target_mailbox) unless imap.list('', target_mailbox)
imap.append(target_mailbox, imap_sent_mail_copy.to_s)
imap.logout
imap.disconnect
target_mailbox = 'Inbox.Sent'
imap = Net::IMAP.new("imap.someserver.com")
imap.authenticate(email_account.authentication, email_account.user_name, email_account.password)
imap.create(target_mailbox) unless imap.list('', target_mailbox)
imap.append(target_mailbox, imap_sent_mail_copy.to_s)
imap.logout
imap.disconnect
其中 imap_sent_mail_copy.to_s 只是一個 Mail 實例
imap_sent_mail_copy = Mail.new do
to to_email_address
from from
subject subject
message_id message_id
if attachment_ids!=""
docs = Document.where(id: attachment_ids)
docs.each do |a|
doc = Document.find_by_id(a)
attachments["#{doc.name}.#{doc.file_ext}"] = File.read("#{Rails.root}/public#{doc.attachment_url}") if doc
end
end
html_part do
content_type 'text/html; charset=UTF-8'
body "#{message} #{signature}"
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.