gpt4 book ai didi

ruby-on-rails - Rails ActionMailer 将电子邮件复制到已发送文件夹 SMTP ruby

转载 作者:行者123 更新时间:2023-12-05 06:45:06 24 4
gpt4 key购买 nike

您好,我可以使用发送邮件功能发送我想要的电子邮件,但是没有已发送的邮件出现在客户端的已发送文件夹中。

我是否必须以某种方式手动将电子邮件复制到已发送文件夹?配置如下,可以发送邮件,仅供引用

    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

关于ruby-on-rails - Rails ActionMailer 将电子邮件复制到已发送文件夹 SMTP ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26136566/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com