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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

C#

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

1558閲覧

[Unity]自身のGmailを利用して、ユーザーからメッセージを受け取ろうとすると、Gmailから「ログインをブロックしました」と通知が来る。

nekoninzya839

総合スコア8

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

C#

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

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/06/09 13:09

ユーザーからメッセージを受け取るために、私のGmailアドレスを使って送信してもらう機能を実装したのですが、Gmailからは「ログインをブロックしました」と通知が来るだけで、ユーザーからのメッセージが届きません。(多分ユーザーが私のGmailにログインできない)

Gmailの設定で、安全性の低いアプリの許可を有効にしているのですが、それでも結果は変わりません。

ちなみに自分のPCやスマホから操作を行うと、ちゃんとメッセージは届きます。
他のデバイスからだと、必ずブロックされてしまうのでしょうか?

どなたかご教授いただければと思います。
よろしくお願いいたします。

以下、実際のコードとなります。
こちらが参考にしたサイトです→リンク内容

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class MailButton : MonoBehaviour { GameObject mailBox; GameObject mailBox2; GameObject bugText; GameObject menuButton; AudioSource aud; public AudioClip mailSE; public string MailFromAddress = "自身のメールアドレス1@gmail.com"; public string MailHost = "smtp.gmail.com"; public int MailPort = 587; public string MailPassword = "パスワード"; public string MailToAddress = "自身のメールアドレス2@gmail.com"; public string MailSubject = "タイトル"; public string MailBody = ""; private System.Net.Mail.SmtpClient _stampClient = null; public void _send() { MailBody = bugText.GetComponent<Text>().text; System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage( MailFromAddress, MailToAddress, MailSubject, MailBody ); if (_stampClient == null) { _stampClient = new System.Net.Mail.SmtpClient(MailHost); _stampClient.SendCompleted += new System.Net.Mail.SendCompletedEventHandler(_sendCompleteHandler); } _stampClient.Port = MailPort; _stampClient.EnableSsl = true; _stampClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; _stampClient.UseDefaultCredentials = false; _stampClient.Credentials = new System.Net.NetworkCredential(MailFromAddress, MailPassword) as System.Net.ICredentialsByHost; System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate ( object s, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors ) { return true; }; _stampClient.SendAsync(msg, msg); this.aud.PlayOneShot(this.mailSE); } void _sendCompleteHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { System.Net.Mail.MailMessage msg = (System.Net.Mail.MailMessage)e.UserState; if (e.Cancelled) { Debug.Log("<color=yellow>Cancelled sending message.</color>"); } else if (e.Error != null) { Debug.Log("<color=red>An error has occurred.</color>"); Debug.Log(e.Error.ToString()); } else { Debug.Log("<color=lime>Mail has been sent.</color>"); } mailBox.GetComponent<RectTransform>().localPosition = new Vector3(-1500, 0, 0); mailBox2.GetComponent<RectTransform>().localPosition = new Vector3(0, 0, 0); msg.Dispose(); } // Start is called before the first frame update void Start() { this.aud = GetComponent<AudioSource>(); this.mailBox = GameObject.Find("MailBox"); this.mailBox2 = GameObject.Find("MailBox2"); this.bugText = GameObject.Find("BugText"); } // Update is called once per frame void Update() { } }

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

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

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

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

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

guest

回答2

0

自分のパスワードをそのまま使うのは最悪。
最悪より一段階だけマシなのはアプリパスワード。
アプリパスワードも別に推奨はされてない。他の方法が使えない時の最終手段。
https://support.google.com/mail/answer/185833?hl=ja

本来はOAuthで認証してアクセストークンを使う。

Unityの場合はどっちでもダメな気がするけど。
コードにパスワード書いたとしてビルド後のファイルから見えたりしない?
アプリ内に埋め込んだトークンが流出とかよくある。
つまりパスワードを書いたらパスワードを盗まれる。
Unityがどうこうよりも遥かに前の基礎知識。

これがWebのサーバーサイドならパスワードは見えない。
UnityでもWebAPIを呼び出す形が多いのはこういう部分のセキュリティ上の理由。
Unity界隈も初心者による間違った情報が広まってるように見えるけど
世の中の人が当たり前にやってることはそれなりの理由がある。
ユーザーに渡るクライアント側は信用しない。

投稿2021/06/09 15:11

kawax

総合スコア10377

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

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

nekoninzya839

2021/06/10 08:23

ご回答ありがとうございます。 無知なもので申し訳ありません。 今後気をつけようと思います。
guest

0

ベストアンサー

Gmailは登録端末からじゃないとブロックされます
そういう使い方はできません

投稿2021/06/09 13:23

y_waiwai

総合スコア87800

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

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

nekoninzya839

2021/06/10 08:20

そうでしたか・・・承知しました。 他の方法を考えようと思います。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問