2

別のシステムとデータを交換するために、データを電子メールの添付ファイルとして専用アドレスに送信します。メールは ActionMailer v3.2.12 を使用して生成されます。

問題は、電子メールが宛先に到着すると、作成した添付ファイルに加えて、ATT00001.c という名前の冗長な添付ファイルが電子メールの一部になることです。これにより、反対側のインポート ルーチンで問題が発生します。

問題の大部分は、送信先で電子メールがどのように処理されているかについて、ほとんど何もわかっていないことです。また、使用されている電子メール サーバーの種類もわかりません。また、電子メールが到着したときに実際にどのように見えるかを確認するためのアクセス権もありません。自分のアドレスの 1 つに送信できますが、そこでは問題ないようです。

これが大したことではないことは承知していますが、おそらく、これらの ATT00001 添付ファイルが機械で生成された電子メールに追加されているのを見たことがある人もいるでしょう。

config.action_mailer.smtp_settings

address: smtp.<mailprovider>.com
port: 587
domain: ourdomain.com
authentication: login
user_name: <removed>
password: <removed>
enable_starttls_auto: false

更新: 問題のある電子メールのコピーを取得することができ、添付ファイルの後にレンダリングされた電子メール本文が独自の添付ファイルとして表示されます。メール本文の後に添付ファイルが生成されるようにActionMailer を設定しようとしましparts_orderたが、役に立ちませんでした。

Update2: Gmail アカウントに送信し、元の生データを表示すると、これが表示されます。

受信者から正しい添付ファイルへの受信応答のSENT MAIL (自動作成されたものはエラー ログ エントリを作成します)

(...) cut: to from and through email header information
 Mime-Version: 1.0
Content-Type: multipart/mixed;
 charset=UTF-8
Content-Transfer-Encoding: 7bit


--
Date: Thu, 28 Feb 2013 12:15:23 +0100
Mime-Version: 1.0
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="thefile.mscons"
Content-ID: <512f3c4b6e875_a8f756dcc642fe@bjorns_arch.mail>

VU5BOisuPyAnVU5CK1VOT0M6Mys3MDgwMDAzNDExNzE2OjE0OlRJTUVSKzcw
... many more lines like this ...
ODAwMDUwNTEyMTc6MTQ6VElNRVIrMTMwMjI4OjEyMTUrUE9XRVNUMTMwMjI4

----

これはbody nilアクションメーラーで

次は、私の gmail に送信された受信者システムからの応答です。これは正しい添付ファイルの領収書です (余分な添付ファイルはエラーを生成し、システムをフラッシュします)

受信メール

(..) unintersting header stuff with addresses
Content-Disposition: attachment;
  filename="afilename.txt"
Content-Transfer-Encoding: base64
Content-Type: Application/EDIFACT; charset="iso-8859-1"
Mime-Version: 1.0
Date: Sat, 16 Feb 2013 11:07:10 +0100
From: ediel@example.com
To: ***@gmail.com
Subject: thesubject
Message-ID: <511f5a53.850a700a.2fa0.2a0eSMTPIN_ADDED_BROKEN@mx.google.com>
X-TM-AS-Product-Ver: IMSS-7.0.0.6298-6.8.0.1017-19380.002
X-TM-AS-User-Approved-Sender: Yes
X-Greylist: Sender is SPF-compliant, not delayed by
milter-greylist-4.0 (isp-app27-vm.isp.example.com [213.239.116.46]);
Sat, 16 Feb 2013 11:07:11 +0100 (CET)
X-ExampleIKT-MailScanner-Information: Please contact the ISP for more information
X-ExampleIKT-MailScanner-ID: r1GA7BqD021150
X-ExampleIKT-MailScanner: Found to be clean
X-ExampleIKT-MailScanner-From: ediel@example.com
X-Spam-Status: No

VU5BOisuPyAnVU5CK1VOT0M6Mys3MDgwMDA1MDUxMjE3OjE0OlRJTUVSKzcwODAwMDM0MTE3MTY6
.. more..
pUSU1FUisxJ1VOVCszKzEnVU5aKzErMjAxMzAyMDAyNDg1Nzcn

Content-Type に何か疑わしいものはありますか? --送信された電子メールの前のものから新しい (空の) 添付ファイルが生成されていますか?

4

2 に答える 2

1

I believe this is to do with inline attachments and Exchange server. Some clients, Apple Mail in particular allow you to add inline attachments, that is, a MIME attachment sandwiched in between text/body parts of an email. Exchange server expects that all attachments appear after any text portion of a mail.

Everything after the attachment in your mail gets treated as an attachment, so the body gets stuffed into a file and named as you reported it to be named. Seeing as you're using ActionMailer, see this answer and possible this answer, which explains that you need to switch the order of the lines of code, and possibly play with some other settings.

于 2013-02-27T14:50:47.867 に答える
1

私たちの問題は解決しましたが、残念ながら、重複した添付ファイルの原因を特定することはできません. 添付ファイルのみを含む非マルチパート メールを送信することで、この問題を回避しました。このソリューションは、マルチパート メールを送信する必要がある人には明らかに機能しません。

Rails で添付ファイル付きの非マルチパート メールを送信するのは簡単ではありません。添付ヘルパー メソッドと空白の本文を使用することはできません。添付ファイルのコンテンツをメール本文に入れ、手動で配置を指定する必要があります。

class MailMan < ActionMailer::Base
  def test
    attachment_content = "my attachment"
    disposition = "attachment; filename=\"test.txt\""
    mail(body: attachment_content,  content_disposition: disposition)
  end
end
于 2013-02-28T18:36:53.610 に答える