ユーザーからメッセージを受け取るために、私の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() { } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/10 08:23