2

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

使用 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 标签打开默认电子邮件,但我认为您不能添加附件。

4

1 回答 1

0

你可以通过几种方式做到这一点。一种方法是直接定义附件:

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

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

或在您的邮件中定义:

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 - 如何添加附件?

编辑:

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

mail_to "me@domain.com"

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

如果您尝试预填充正文文本,您可以在此处找到一些内容 使用带有块的 mail_to (mail_to ... do)

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

我刚刚从头顶上放了一个代码,我希望某种附加方式可能会起作用:

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

我还没有尝试过所有这些,但我希望有些东西会起作用,或者指引你朝着好的方向前进

于 2013-02-27T09:54:10.353 回答