■21541 / inTopicNo.1) |
添付メールとして送信 |
□投稿者/ kaoru (20回)-(2008/07/03(Thu) 22:24:48)
|
分類:[C#]
いつもたいへんお世話になります。 まずは相談から。 オープンダイアログで選択した画像ファイルを添付メールとして送信しようと思っています。 現在は、バッチファイルとコマンドライン版のbase64、sendmailを使っています。これをC#だけで行えたらと考えています。
最初は、選択した画像の一覧さえ取得できれば、そこから先は従来の外部のbase64、sendmailを使えばよいかと思っていたのですが(弱い)、せっかくなのでぜんぶ(あるいは一部を)置き換えたいと考えました(前向き)。 最初は、C#でのBase64エンコードを調べていたのですが、どうもBase64にしてからメールを送信するよりは、いきなりメール送信してしまったほうが処理が少ないように思えました。ざっと見ると、かなりBase64の処理と、メールの処理のコードが違っているので、ひとつの処理をふたつに分けて二度手間するのはちょっと現状のわたしのレベルではとうてい無駄が多いというか無理な難問に直面しすぎると考えました。 メールを送信するC#のプログラムはいくつか見つけたのですが、たいていのサンプルの問題は次の2点と考えています。
・メールアドレスや各種設定を決め打ちしている。外部のファイルから読みたい。ファイルは下記の通り。ふたつのファイルからなっている。現在のところ送信先は固定。 ・smtp認証が必要なので認証に対応したい。Port587も対応したい。Portと認証対応のソースは見当たらない? まだ探せてないです。そんなことないか。次のようなのがありますね。これで試しはしたのですが、どうもメールが届かない…。なにか問題が起きていることだけはわかっています。
//MailMessageの作成 System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage( "from@xxx.xxx", "to@xxx.xxx", "題名", "本文");
System.Net.Mail.SmtpClient sc = new System.Net.Mail.SmtpClient(); //SMTPサーバーを指定する sc.Host = "localhost"; //ポート番号を指定する sc.Port = 25; //メッセージを送信する sc.Send(msg);
//後始末 msg.Dispose(); http://dobon.net/vb/dotnet/internet/smtpport.html
設定ファイルは下記の通り。
sendmail.ini [SMTP] Host=server.smtp.ne.jp Port=587 Mail=kaoru@gmail.com Name=kaoru Jconv=0 ASMTPUse=1 User=kaoru@gmail.com Pass=password [POP3] POPUse=0 Host=server.pop.ne.jp Port=110 User=kaoru Pass=password
to_mailaddress.txt tomail@tomail.ne.jp
これで進めてなんとかなりそうですかね〜? ご意見賜りたく。
|
|