質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

0回答

313閲覧

C# MailMessage ファイル添付出来ない

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2019/07/11 00:31

.NET 4.0
MailMessageの添付プロパティ
Attachmentsを使用してもファイルが添付できません。

元々メールを送信している機能があり、
添付機能を追加することになりました。
以下のようなコードを追記しています。
(調べて出てくるようなコードは全て試しています)

message.Attachments.Add(new System.Net.Mail.Attachment(@"D:full/pass/temp.jpeg", MediaTypeNames.Image.Jpeg));

指定パスは間違いなく、自身の直下に置いてある画像です。

メールは送信されますが、画像は添付されておらず、
なぜかもともと表示していた本文も表示されていない、という状態でメールが飛んできます。

エラーが出る訳でもなく、何が悪いのか全く分かりません。
コードが悪いのか、画像が取得出来ていないのか、
メールサーバーの問題なのか、見当もつかず、困っています。

何か分かることありませんか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2019/07/11 00:57

ファイルのパスは”D:\~”ではなく"D:~"なのですか?
退会済みユーザー

退会済みユーザー

2019/07/11 00:59

パスを隠す際のミスです。 ファイルパスに間違いはありません。
YAmaGNZ

2019/07/11 01:25

一般的なメーラーで同様のメールを送信した場合は正常なのですか?
退会済みユーザー

退会済みユーザー

2019/07/11 01:29

すみません、質問の意味がちょっとよく分からないのですが、 画像添付のコードを書かなければ、タイトルと本文は正常に表示され 問題なくメールは送信受信されます。
workaholist

2019/07/11 01:32

作成したプログラムを介してメールを送信する場合と、メーラーを介してメールを送信する場合の違いは検証したのですか、という質問だと思いますよ。 これにより「メールサーバーの問題なのか」の切り分けはできますよね?
YAmaGNZ

2019/07/11 01:34

あなたの作成したプログラムではなく、OutlookやThunderbirdなどの一般的なメーラーでプログラムと同じようにjpegを添付したメールを送信した場合に正常に送信できるかです。 この時、アカウント等は同じにしてください。 要は、メールサーバの話なのかプログラムの話なのかの切り分けです。
退会済みユーザー

退会済みユーザー

2019/07/11 01:46

なるほど、失礼しました。 送信受信に関して、画像添付に問題ありませんでした。
YAmaGNZ

2019/07/11 01:59

そうなると、受信したメールのソースを見て、プログラムから送信した場合とメーラーから送信した場合で何が違うのか確認してください。 また、message.Attachments.Addの行をコメントアウトしただけでメール本文は正常になるのでしょうか?
退会済みユーザー

退会済みユーザー

2019/07/11 02:17

受信したメールを保存しようとした際の違いは、 メーラーからのがhtml、プログラムからがtxtになる点です。 これ関係ありますか? 画像添付のコードを消すと、本文まで 綺麗に表示されます。
YAmaGNZ

2019/07/11 02:35

受信したメールのソースを見てください。 Content-Type: image/jpeg; name=temp.jpeg Content-Transfer-Encoding: base64 Content-Disposition: attachment みたいな感じで添付ファイルの情報があるか確認してみてください。
退会済みユーザー

退会済みユーザー

2019/07/11 02:40

Content系の情報は記載されていませんでした。
YAmaGNZ

2019/07/11 03:07

MailMessageの生成~送信までのソース(ここをコメントアウトすると正常などの情報も)を出せませんか?
退会済みユーザー

退会済みユーザー

2019/07/11 04:52

諸事情でソースをそのままは書けませんが、 その辺に転がってるテンプレートとほぼ同じです。 ``` //MailMessageの作成 System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); //送信者(メールアドレスが"sender@xxx.xxx"、名前が"鈴木"の場合) msg.From = new System.Net.Mail.MailAddress("sender@xxx.xxx", "鈴木"); //宛先(メールアドレスが"recipient@xxx.xxx"、名前が"加藤"の場合) msg.To.Add(new System.Net.Mail.MailAddress("recipient@xxx.xxx", "加藤")); //件名 msg.Subject = "こんにちは"; //本文 msg.Body = "こんにちは。\r\n\r\nそれではまた。"; msg.Attachments.Add(new System.Net.Mail.Attachment(@"D:\full\pass\temp.jpeg", MediaTypeNames.Image.Jpeg)); System.Net.Mail.SmtpClient sc = new System.Net.Mail.SmtpClient(); //SMTPサーバーなどを設定する sc.Host = "localhost"; sc.Port = 25; sc.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; //メッセージを送信する sc.Send(msg); //後始末 msg.Dispose(); //後始末(.NET Framework 4.0以降) sc.Dispose(); ```
YAmaGNZ

2019/07/11 05:04

当方で実行したところ、添付できております。 これを実行しても添付できないのですか?
退会済みユーザー

退会済みユーザー

2019/07/11 05:39

添付できたのですか・・・! こちらは添付できません。
YAmaGNZ

2019/07/13 02:23

送信先のメールアドレスを変更してみる、 送信元を別のものにしてみる。 などは試されましたか? Yahooメールからの送信でも添付ファイルは確認できましたので、ご自身が作成されたプログラムの送信元を変更して添付が送れるのであれば、別の要因かもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問