Rails actionmailer打开主机电子邮件应用程序

时间:2013-02-27 04:36:10

标签: ruby-on-rails actionmailer

从链接中,我想打开用户的默认邮件应用程序,附加附件,“收件人”字段为空,以及主题和正文中的一些预先填充的文本。

使用ActionMailer,我可以从我的Gmail帐户发送它,但它不会打开默认的电子邮件应用程序。以下是我在ActionMailer :: Base.smtp_settings中的设置:

ActionMailer::Base.smtp_settings = {


    :address              => "smtp.gmail.com",
    :port                 => 587,
    :domain               => "gmail.com",
    :user_name            => "myname",
    :password             => "mypassword",
    :authentication       => "plain",
    :enable_starttls_auto => true
}

有没有办法动态地执行此操作,href mailto的方式是什么?

href mailto标签会打开默认电子邮件,但我认为您无法添加附件。

1 个答案:

答案 0 :(得分:0)

你可以用很少的方式做到这一点。一种方法是直接定义附件:

encoded_content = SpecialEncode(File.read('/path/to/filename.jpg'))
attachments['filename.jpg'] = {:mime_type => 'application/x-gzip',
                               :encoding => 'SpecialEncoding',
                               :content => encoded_content }

将filename替换为您的文件,或者您可以使用内联定义附件,如下所示:

或者在邮件中定义:

def welcome
  attachments.inline['image.jpg'] = File.read('/path/to/image.jpg')
end

在视图中:

<p>Hello there, this is our image</p>

<%= image_tag attachments['image.jpg'].url, :alt => 'My Photo',
                                            :class => 'photos' %>

您可以在此处找到如何创建附件的参考:http://guides.rubyonrails.org/action_mailer_basics.html

但如果您使用Heroku,您可能会遇到一些困难 - 您可以在此处阅读:ActionMailer - How to Add an attachment?

修改

是的,你提出的问题和代码让我感到困惑,真正的问题是什么。我现在相信你正在寻找这个:

mail_to "me@domain.com"

寻找参考:http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-mail_to

如果您要预先填充正文,可以在这里找到一些内容 Using mail_to with a block (mail_to ... do)

在这里添加图片,也许你可以找到有用的东西 rails: include html in a mail_to link

我刚刚提出了一个代码,我希望某种附加可能会起作用:

<%= mail_to("you@gmail.com", image_tag("email.gif")) %>

我没有尝试过所有这些,但我希望有些东西可行,或指导你朝着正确的方向发展