Kojote Geschrieben 22. August 2021 Melden Share Geschrieben 22. August 2021 Hi! Ich versuche gerade eine Email aus Unity abzusenden. Der Code sieht so aus: public class Ticketsystem : MonoBehaviour { [SerializeField] string emailAdressFrom = "emailAdressFrom"; [SerializeField] string emailAdressTo = "emailAdressTo"; [SerializeField] string host = "host"; [SerializeField] int port = 993; [SerializeField] TextMeshProUGUI emailSubject; [SerializeField] TextMeshProUGUI emailText; [SerializeField] TextMeshProUGUI errorMessage; private string playerPosition; public void Send() { errorMessage.text = ""; playerPosition = (gameObject.transform.position.x + " | " + gameObject.transform.position.y + " | " +gameObject.transform.position.z); CreateMessageWithAttachment(); } private void CreateMessageWithAttachment() { // Specify the file to be attached and sent. //string file = ""; // Create a message and set up the recipients. MailMessage message = new MailMessage( emailAdressFrom, emailAdressTo, emailSubject.text, (emailText.text + playerPosition)); // Create the file attachment for this email message. //Attachment data = new Attachment(file, MediaTypeNames.Application.Octet); // Add time stamp information for the file. //ContentDisposition disposition = data.ContentDisposition; //disposition.CreationDate = System.IO.File.GetCreationTime(file); //disposition.ModificationDate = System.IO.File.GetLastWriteTime(file); //disposition.ReadDate = System.IO.File.GetLastAccessTime(file); // Add the file attachment to this email message. //message.Attachments.Add(data); //Send the message. SmtpClient client = new SmtpClient(); client.Host = host; client.Port = port; // Add credentials if the SMTP server requires them. client.Credentials = CredentialCache.DefaultNetworkCredentials; try { client.SendMailAsync(message); Debug.Log("Mail gesendet!"); } catch (Exception ex){ #if AT_I2LOC_PRESET errorMessage = I2.Loc.LocalizationManager.GetTranslation("Error Message Ticketsystem"); #else errorMessage.text = ("Sorry, the email could not be sent.Please contact the admin directly at: " + emailAdressTo); #endif Debug.Log(ex.ToString()); } } } Die Variablen emailAdressFrom, emailAdressTo und Host sind richtig ausgefüllt. Es wird mir auch ausgegeben, dass die Email versendet wurde. Jedoch kommt keine an. Habt ihr eine Idee was falsch sein könnte? Andere Frage, kann man im Text Zeilenumbrüche einbauen? Grüße v. Kojote Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kojote Geschrieben 22. August 2021 Autor Melden Share Geschrieben 22. August 2021 Zwieteres hat sich geklärt, Unicode hat ja auch einen Zeilenumbruch enthalten. Fragt sich nur warum die Emails nicht ankommen. Auch das versenden an verschiedene Email-Adressen funktioniert nicht. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 22. August 2021 Melden Share Geschrieben 22. August 2021 Mail-Server sind ziemlich mysteriöse Dinger. Ich kenne mich damit nicht gerade gut aus, würde mich aber nicht wundern, wenn der Smtp-Server deine Mails einfach ablehnt. Nicht verschlüsselt, unbekannter Client, irgendwie sowas. Und wenn du keine Fehlermeldung kriegst, liegt das vielleicht daran, dass die Async-Methode keine Exceptions in den Thread wirft, in dem sie gestartet wurde. Aber ich kann hier auch nur raten. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kojote Geschrieben 22. August 2021 Autor Melden Share Geschrieben 22. August 2021 SSL Verschlüsselung hab ich schon implementiert. Ich vermute auch bald unbekannter Client. Blos was ich dagegen mache bin ich noch ratlos. 🤔 Ich habe mal Asynchron raus genommen und siehe da: System.Net.Mail.SmtpException: 334 VXNlcm5hbWU6 at System.Net.Mail.SmtpClient.CheckStatus (System.Net.Mail.SmtpClient+SmtpResponse status, System.Int32 i) [0x0001a] in <ef151b6abb5d474cb2c1cb8906a8b5a4>:0 at System.Net.Mail.SmtpClient.Authenticate (System.String user, System.String password) [0x00065] in <ef151b6abb5d474cb2c1cb8906a8b5a4>:0 at System.Net.Mail.SmtpClient.Authenticate () [0x000b1] in <ef151b6abb5d474cb2c1cb8906a8b5a4>:0 at System.Net.Mail.SmtpClient.SendCore (System.Net.Mail.MailMessage message) [0x00132] in <ef151b6abb5d474cb2c1cb8906a8b5a4>:0 at System.Net.Mail.SmtpClient.SendInternal (System.Net.Mail.MailMessage message) [0x00050] in <ef151b6abb5d474cb2c1cb8906a8b5a4>:0 at System.Net.Mail.SmtpClient.Send (System.Net.Mail.MailMessage message) [0x00091] in <ef151b6abb5d474cb2c1cb8906a8b5a4>:0 at LD_MP_Ticketsystem.CreateMessageWithoutAttachment () [0x000ba] in C:\Users\daten\Documents\Blank Version\Assets\Scripts\Ticketsystem.cs:62 UnityEngine.Debug:Log (object) Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kojote Geschrieben 22. August 2021 Autor Melden Share Geschrieben 22. August 2021 Also wem so ein Quark einfällt, ich greif mir an den Kopf. Damit das alles funktioniert muss in den Credentials zur autoverifizierung mein Benutzername und mein Passwort an den Server gesendet werden. Erst dann kann ich dort hin Emails schicken. Klar, ich hinterlege natürlich in meinem Spiel im Klartext Benutzername und Passwort. 😡 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 22. August 2021 Melden Share Geschrieben 22. August 2021 Du willst ja auch nicht andere Leute als "du" E-Mails verschicken lassen? Darfst dich halt nicht beschweren, wenn der Nagel nicht richtig reingeht, wenn du zum Hauen eine Duftkerze nimmst. Was willst du denn erreichen? Und warum baust du nicht ganz normal einen Web-Service, der vom Spiel mit http angesprochen wird? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kojote Geschrieben 22. August 2021 Autor Melden Share Geschrieben 22. August 2021 Ich möchte eigentlich nix anderes, als im Spiel die Möglichkeit einer Bugmeldung. Deshlab meine Idee mit einem simplen Eingabefeld und mir den Bugreport per Email zuschicken. Das dies so ausartet dachte ich net. xD Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 22. August 2021 Melden Share Geschrieben 22. August 2021 Dachte ich mir fast Da schreibst du ein ganz normales Web-Backend. Der Bugreport wird ganz normal per HTTP an deinen Server gesendet und wenn du willst, kann der dann eine E-Mail an dich schicken. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kojote Geschrieben 22. August 2021 Autor Melden Share Geschrieben 22. August 2021 Und wie mache ich das? xD Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 22. August 2021 Melden Share Geschrieben 22. August 2021 Kommt drauf an? Willkommen in der Web-Entwicklung! Such dir nen Hoster aus und los gehts! Oft gibt's PHP, oft aber auch JavaScript, manchmal vielleicht Python. Dein Hoster sollte auch einen Smtp-Server betreiben, sonst wird's mit den E-Mails schwer. Kannst auch mal Crashlytics anschauen; keine Ahnung, ob das was kostet. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Kojote Geschrieben 22. August 2021 Autor Melden Share Geschrieben 22. August 2021 Oh man, ich wollt doch nurn Bugreport haben und nicht auch och in die Web-Entwicklung einsteigen. 😅 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 22. August 2021 Melden Share Geschrieben 22. August 2021 Von nix kommt nix! Ansonsten muss Bug Reporting aber auch nicht ingame erfolgen. Setz ein Forum auf oder nimm Github/Gitlab Issue Tracking oder Trello. Dann machste nen Button in dein Spiel, der Application.OpenURL ausführt und damit im Browser des Benutzers deinen Bug Tracker öffnet. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.