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
}

これを動的に行う方法はありますか?hrefmailtoのように?

href mailtoタグはデフォルトのメールを開きますが、添付ファイルを追加することはできないと思います。

4

1 に答える 1

0

いくつかの方法でそれを行うことができます。1 つの方法は、アタッチメントを直接定義することです。

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

本文テキストを事前入力しようとしている場合は、ここで何かを見つけることができます ブロックで mail_to を使用する (mail_to ... do)

そしてここに画像を追加するために、何か便利なレールを見つけることができるかもしれません : mail_to リンクに html を含めます

頭のてっぺんからコードを書きました。何らかのアタッチが機能することを願っています。

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

私はこれをすべて試したわけではありませんが、何かがうまくいくこと、またはあなたを良い方向に導くことを願っています

于 2013-02-27T09:54:10.353 に答える