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

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

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

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

1回答

7644閲覧

XamarinでSmtpClientが旧形式の警告が表示されてしまう

mi-na

総合スコア12

C#

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

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2016/07/14 05:20

編集2016/07/14 05:22

Visual Studio Community 2015を新規インストールし、XamarinでAndroidの開発を始めました。

ボタンクリックしたらメール送信する機能を作成したいため、以下のサイトを参考にしました。
http://furuya02.hatenablog.com/entry/20140521/1400694780

Activityを新規追加し、「2 SmtpSclientによる直接通信」のソースコードをコピペし、以下のようにusingも追加しました。

==============================
using System.Net;
using System.Net.Mail;

void onClick_btnOK(object sender, EventArgs e)
{
var mail = new MailMessage();
mail.From = new MailAddress("spw0044@gmail.com");
mail.To.Add("user2@example.com");
mail.Subject = "件名";
mail.Body = "本文";

var smtpClient = new SmtpClient("smtp.gmail.com",587);
smtpClient.Credentials = new NetworkCredential("spw0044@gmail.com", "XXXXXXXXXX");
smtpClient.EnableSsl = true;
ServicePointManager.ServerCertificateValidationCallback = (sender2, certificate, chain, errors) => true;
smtpClient.Send(mail);
}

すると「SmtpClient」に緑波線が付き、コンパイルすると以下の警告が表示されました。

警告 CS0618
'SmtpClient' は旧形式です ('SmtpClient and its network of types are poorly designed, we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead')

試しにVisual Studio 2015でC#のWindowsアプリを新規作成して同じソースをコピペしたところ、警告は表示されませんでした。

同じVS2015を使用し、C#で記述していますが、Android用だけ警告が表示される状況です。
Webで検索しても同じ現象の情報は発見出来ませんでした。
また、警告に表示されたURLを見てもよくわかりませんでした。

何か追加インストールが必要なのでしょうか?
対処方法を教えて下さい。

よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

'SmtpClient' は旧形式です ('SmtpClient and its network of types are poorly designed, we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead')

「SmtpClient は設計が不十分なので使わないで欲しい。代わりに MailKit と MimeKit を使ってください。」

と言っていますね。

で、 StmpClient の代わりにメール送信ができます。

まず、 nuget パッケージマネージャから

を追加します(一緒に MimeKit もインストール)されます。

使い方は上記URLの Sending Messages にも載っていますが、

using MailKit.Net.Smtp; using MailKit; using MimeKit; <省略> using (var client = new SmtpClient ()) { client.Connect ("smtp.friends.com", 587, false); // Note: since we don't have an OAuth2 token, disable // the XOAUTH2 authentication mechanism. client.AuthenticationMechanisms.Remove ("XOAUTH2"); // Note: only needed if the SMTP server requires authentication client.Authenticate ("joey", "password"); client.Send (message); client.Disconnect (true); }

なので、 SmtpClient とほぼ同じように使えます。

iOS, Android などクロスプラットフォームで使えますし、開発者が Xamarin の人のようなので品質的にも問題ないと思います。

サンプルプログラムが

にあるので、こちらも参考になるかと思います。

投稿2016/07/14 10:27

amay077

総合スコア1075

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

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

mi-na

2016/07/19 01:14

お返事が遅くなり、大変申し訳ありませんでした。 現時点の最新バージョンが1.4.1だったため、 「MailKit 1.4.1」を追加し、教えていただいたURLのとおりに記述したところ、 無事にメール送信が実現出来ました。 このたびはありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問