簡體   English   中英

Rails ActionMailer 將電子郵件復制到已發送文件夾 SMTP ruby

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM