[MY-RS] Envoyer des email depuis une application

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Flo_
Messages : 18
Inscription : 20 Avr 2017 08:43

Re: [MY-RS] Envoyer des email depuis une application

Message par Flo_ » 14 Août 2017 15:10

simonj a écrit :
14 Août 2017 14:22


Et bien dit donc ! Il semblerait que tout ça fonctionne :D Je ne pensais pas que ça marcherait dès le premier essai !
J'ai un peu près compris comment ça marchait même si je ne saurais pas reproduire le code moi même (niveau php). Mais l'important c'est que j'ai compris le gros du truc et surtout que ça marche ;)

Donc si je comprend bien, si une autre application tente d'utiliser ce script mais ne fournie pas / pas la bonne key, cela ne fonctionne pas c'est cela ?

Derniere question : est-ce lent si le message que je souhaite envoyer est très long ? La méthode que j'utilisais jusqu'à présent ne prenait que très peu de temps, mais je ne sais pas si avec le hash et tout ça pourrait prendre plus de temps ?
J'essayerais ça toute à l'heure au pire.
Merci pour tout ! ;)

Avatar de l’utilisateur
simonj
Messages : 293
Inscription : 29 Nov 2015 20:47
Localisation : Lyon

Re: [MY-RS] Envoyer des email depuis une application

Message par simonj » 14 Août 2017 15:47

Flo_ a écrit :
14 Août 2017 15:10
Et bien dit donc ! Il semblerait que tout ça fonctionne :D Je ne pensais pas que ça marcherait dès le premier essai !
J'ai un peu près compris comment ça marchait même si je ne saurais pas reproduire le code moi même (niveau php). Mais l'important c'est que j'ai compris le gros du truc et surtout que ça marche ;)

Donc si je comprend bien, si une autre application tente d'utiliser ce script mais ne fournie pas / pas la bonne key, cela ne fonctionne pas c'est cela ?

Derniere question : est-ce lent si le message que je souhaite envoyer est très long ? La méthode que j'utilisais jusqu'à présent ne prenait que très peu de temps, mais je ne sais pas si avec le hash et tout ça pourrait prendre plus de temps ?
J'essayerais ça toute à l'heure au pire.
Merci pour tout ! ;)
Cool si ça marche ;)

Pour le script .php, c'est peut-être normal que tu n'aurais pas sut faire si tu viens de commencer ou si tu ne te sens pas très à l'aise. Après je t'invites vraiment à regarder chaque fonction du script et à essayer de comprendre ce qui est fait. Le script n'est pas très long (100 lignes max ?) donc facilement décorticable et ça permet vraiment de progresser pour voir comment faire les choses.

C'est exactement ça, si quelqu'un ne fournis pas la bonne clef le message ne sera pas envoyé. A toi de gérer tes clefs correctement. De plus, dans le script .php, tu as un tableau de clefs. Ce qui te permet de gérer et d'accepter plusieurs mots de passe pour une ou plusieurs applications. Par contre, le "Sel" doit rester le même sur tous les mots de passe encryptés.

Question lenteur, ça ne change rien avec ta méthode précédente. Je ne fais rien de plus que hasher le mot de passe. Et cette opération est quasi invisible niveau temps de processing. La longueur du message influe juste sur la longueur de l'envoi. Mais pour que ça se ressente vraiment il faudrait un vrai pavé.

Flo_
Messages : 18
Inscription : 20 Avr 2017 08:43

Re: [MY-RS] Envoyer des email depuis une application

Message par Flo_ » 14 Août 2017 15:55

simonj a écrit :
14 Août 2017 15:47
Flo_ a écrit :
14 Août 2017 15:10
Et bien dit donc ! Il semblerait que tout ça fonctionne :D Je ne pensais pas que ça marcherait dès le premier essai !
J'ai un peu près compris comment ça marchait même si je ne saurais pas reproduire le code moi même (niveau php). Mais l'important c'est que j'ai compris le gros du truc et surtout que ça marche ;)

Donc si je comprend bien, si une autre application tente d'utiliser ce script mais ne fournie pas / pas la bonne key, cela ne fonctionne pas c'est cela ?

Derniere question : est-ce lent si le message que je souhaite envoyer est très long ? La méthode que j'utilisais jusqu'à présent ne prenait que très peu de temps, mais je ne sais pas si avec le hash et tout ça pourrait prendre plus de temps ?
J'essayerais ça toute à l'heure au pire.
Merci pour tout ! ;)
Cool si ça marche ;)

Pour le script .php, c'est peut-être normal que tu n'aurais pas sut faire si tu viens de commencer ou si tu ne te sens pas très à l'aise. Après je t'invites vraiment à regarder chaque fonction du script et à essayer de comprendre ce qui est fait. Le script n'est pas très long (100 lignes max ?) donc facilement décorticable et ça permet vraiment de progresser pour voir comment faire les choses.

C'est exactement ça, si quelqu'un ne fournis pas la bonne clef le message ne sera pas envoyé. A toi de gérer tes clefs correctement. De plus, dans le script .php, tu as un tableau de clefs. Ce qui te permet de gérer et d'accepter plusieurs mots de passe pour une ou plusieurs applications. Par contre, le "Sel" doit rester le même sur tous les mots de passe encryptés.

Question lenteur, ça ne change rien avec ta méthode précédente. Je ne fais rien de plus que hasher le mot de passe. Et cette opération est quasi invisible niveau temps de processing. La longueur du message influe juste sur la longueur de l'envoi. Mais pour que ça se ressente vraiment il faudrait un vrai pavé.
Oui effectivement j'ai pris le temps de regarder. C'est pas vraiment compliqué et je fini par comprend ce qui est fait. Mais malgré ça il m'aurait manqué la syntaxe php que je ne connais pas.
Qu'entends-tu par pavé ? A l'avenir j'aurais surement besoin à nouveau d'envoyer des email comme cela, et j'ai déjà été confronté à des cas où il m'aurait fallu le faire pour plusieurs dizaines de milliers de charactères.

A oui aussi je voulais savoir, est-il possible d'envoyer de la même manières des pièces jointes ? (sans avoir à utiliser cette fois un script trop compliqué)

Merci ;)

Avatar de l’utilisateur
simonj
Messages : 293
Inscription : 29 Nov 2015 20:47
Localisation : Lyon

Re: [MY-RS] Envoyer des email depuis une application

Message par simonj » 14 Août 2017 17:38

Flo_ a écrit :
14 Août 2017 15:55
Oui effectivement j'ai pris le temps de regarder. C'est pas vraiment compliqué et je fini par comprend ce qui est fait. Mais malgré ça il m'aurait manqué la syntaxe php que je ne connais pas.
Qu'entends-tu par pavé ? A l'avenir j'aurais surement besoin à nouveau d'envoyer des email comme cela, et j'ai déjà été confronté à des cas où il m'aurait fallu le faire pour plusieurs dizaines de milliers de charactères.

A oui aussi je voulais savoir, est-il possible d'envoyer de la même manières des pièces jointes ? (sans avoir à utiliser cette fois un script trop compliqué)

Merci ;)
Honnêtement pour la taille, je n'en sais rien.
Il y a la limite de taille sur le serveur où les paramètres POST ne peuvent pas avoir plus d'une certaine taille. C'est différent sur chaque serveur donc il faut soit tester, soit aller regarder dans les fichiers de configuration.
Il y a aussi le réseau. Si tu dois envoyer des énormes documents texte çà va considérablement augmenter le temps d'envoi (Logique...)
A toi de tester de ton coté maintenant. Je n'ai jamais été confronté à ces cas là, donc je n'ai pas fait les tests de robustesse de ce coté.

Concernant les pièces jointes, je n'ai jamais été confronté à ce cas là non plus. Pour moi il y a 2 choses sur lesquels il faut se renseigner :
- Utiliser une librairie spécialisé dans l'envoi de mail en PHP car j'ai crus comprendre que l'envoi de mail est un peu touchy et donc il faut faire relativement attention quand on le fait. Donc autant laisser une lib' s'en charger. J'ai vu passer des noms comme PhpMailer, ...
- L'envoi d'un fichier sur le serveur afin de pouvoir le mettre dans le mail. C'est pour moi le plus compliqué. Il faut commencer par faire des envoi de petit fichier pour voir si c'est possible avec UNITY. Puis après des images, ...

Je pense que c'est plus long que compliqué. Et pour l'instant je n'ai pas autant de temps que je le voudrais ! Après je reste à ta disposition si tu as besoin de conseils ;)

Flo_
Messages : 18
Inscription : 20 Avr 2017 08:43

Re: [MY-RS] Envoyer des email depuis une application

Message par Flo_ » 14 Août 2017 17:46

simonj a écrit :
14 Août 2017 17:38
Flo_ a écrit :
14 Août 2017 15:55
Oui effectivement j'ai pris le temps de regarder. C'est pas vraiment compliqué et je fini par comprend ce qui est fait. Mais malgré ça il m'aurait manqué la syntaxe php que je ne connais pas.
Qu'entends-tu par pavé ? A l'avenir j'aurais surement besoin à nouveau d'envoyer des email comme cela, et j'ai déjà été confronté à des cas où il m'aurait fallu le faire pour plusieurs dizaines de milliers de charactères.

A oui aussi je voulais savoir, est-il possible d'envoyer de la même manières des pièces jointes ? (sans avoir à utiliser cette fois un script trop compliqué)

Merci ;)
Honnêtement pour la taille, je n'en sais rien.
Il y a la limite de taille sur le serveur où les paramètres POST ne peuvent pas avoir plus d'une certaine taille. C'est différent sur chaque serveur donc il faut soit tester, soit aller regarder dans les fichiers de configuration.
Il y a aussi le réseau. Si tu dois envoyer des énormes documents texte çà va considérablement augmenter le temps d'envoi (Logique...)
A toi de tester de ton coté maintenant. Je n'ai jamais été confronté à ces cas là, donc je n'ai pas fait les tests de robustesse de ce coté.

Concernant les pièces jointes, je n'ai jamais été confronté à ce cas là non plus. Pour moi il y a 2 choses sur lesquels il faut se renseigner :
- Utiliser une librairie spécialisé dans l'envoi de mail en PHP car j'ai crus comprendre que l'envoi de mail est un peu touchy et donc il faut faire relativement attention quand on le fait. Donc autant laisser une lib' s'en charger. J'ai vu passer des noms comme PhpMailer, ...
- L'envoi d'un fichier sur le serveur afin de pouvoir le mettre dans le mail. C'est pour moi le plus compliqué. Il faut commencer par faire des envoi de petit fichier pour voir si c'est possible avec UNITY. Puis après des images, ...

Je pense que c'est plus long que compliqué. Et pour l'instant je n'ai pas autant de temps que je le voudrais ! Après je reste à ta disposition si tu as besoin de conseils ;)
D'accord merci beaucoup pour toute ton aide ! :)

Flo_
Messages : 18
Inscription : 20 Avr 2017 08:43

Re: [MY-RS] Envoyer des email depuis une application

Message par Flo_ » 14 Août 2017 19:03

simonj a écrit :
14 Août 2017 17:38
Je reviens ici car après avoir build mon application, je l'ai faite essayer à un ami et il a le message suivant : https://prnt.sc/g8edrq
Lorsque j'utilisais l'ancien script, il n'a pas eu ce message. Je n'ai pas essayé depuis de remettre l'ancien pour voir si ce message disparaissait, mais cela m'embête un petit peu, dans la mesure où si je réalise un jeu/appli et que je souhaite réutiliser cette fonction, je perdrais surement des utilisateurs à cause de ça.

Merci par avance :)

Avatar de l’utilisateur
simonj
Messages : 293
Inscription : 29 Nov 2015 20:47
Localisation : Lyon

Re: [MY-RS] Envoyer des email depuis une application

Message par simonj » 14 Août 2017 20:03

Essaye juste d'enlever la fonction MD5 pour savoir si ça viens de ça ?

Si ça viens de ça, il faut que l'on essaye de trouver une autre solution pour faire du MD5. On va regarder. Si c'est pas ça, il faut trouver d'où ça viens.

Flo_
Messages : 18
Inscription : 20 Avr 2017 08:43

Re: [MY-RS] Envoyer des email depuis une application

Message par Flo_ » 15 Août 2017 13:10

simonj a écrit :
14 Août 2017 20:03
Essaye juste d'enlever la fonction MD5 pour savoir si ça viens de ça ?

Si ça viens de ça, il faut que l'on essaye de trouver une autre solution pour faire du MD5. On va regarder. Si c'est pas ça, il faut trouver d'où ça viens.
J'ai fais des petits test et finalement lorsque j'envoie le fichier à mon ami via Skype il n'y a aucun problème, mais lorsque je l'upload sur Mediafire SmartScreen s'énerve. C'est étrange

Narkos
Messages : 46
Inscription : 15 Août 2017 10:22
Localisation : Localisation impossible

Re: [MY-RS] Envoyer des email depuis une application

Message par Narkos » 16 Août 2017 21:45

Yop les gens!

je crois que je suis tombé sur la solution à votre problème:
http://answers.unity3d.com/questions/43 ... ith-c.html

Cette solution évite de passer par un script php externe. Ca évitera les risques :super:

On y trouve ce code:
using UnityEngine;
using System.Collections;
using System;
using System.Net;
using System.Net.Mail;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

public class mono_gmail : MonoBehaviour {

void Main ()
{
MailMessage mail = new MailMessage();

mail.From = new MailAddress("youraddress@gmail.com");
mail.To.Add("youraddress@gmail.com");
mail.Subject = "Test Mail";
mail.Body = "This is for testing SMTP mail from GMAIL";

SmtpClient smtpServer = new SmtpClient("smtp.gmail.com");
smtpServer.Port = 587;
smtpServer.Credentials = new System.Net.NetworkCredential("youraddress@gmail.com", "yourpassword") as ICredentialsByHost;
smtpServer.EnableSsl = true;
ServicePointManager.ServerCertificateValidationCallback =
delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{ return true; };
smtpServer.Send(mail);
Debug.Log("success");

}
}
Un des commentaires indique aussi que:
Got IT! I found out I had to set Api Compatibility Level to ".NET 2.0" instead of ".NET 2.0 Subset" under player settings. Works great!!!
Salutations!

Flo_
Messages : 18
Inscription : 20 Avr 2017 08:43

Re: [MY-RS] Envoyer des email depuis une application

Message par Flo_ » 16 Août 2017 21:58

Narkos a écrit :
16 Août 2017 21:45
Yop les gens!

je crois que je suis tombé sur la solution à votre problème:
http://answers.unity3d.com/questions/43 ... ith-c.html

Cette solution évite de passer par un script php externe. Ca évitera les risques :super:

On y trouve ce code:
using UnityEngine;
using System.Collections;
using System;
using System.Net;
using System.Net.Mail;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

public class mono_gmail : MonoBehaviour {

void Main ()
{
MailMessage mail = new MailMessage();

mail.From = new MailAddress("youraddress@gmail.com");
mail.To.Add("youraddress@gmail.com");
mail.Subject = "Test Mail";
mail.Body = "This is for testing SMTP mail from GMAIL";

SmtpClient smtpServer = new SmtpClient("smtp.gmail.com");
smtpServer.Port = 587;
smtpServer.Credentials = new System.Net.NetworkCredential("youraddress@gmail.com", "yourpassword") as ICredentialsByHost;
smtpServer.EnableSsl = true;
ServicePointManager.ServerCertificateValidationCallback =
delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
{ return true; };
smtpServer.Send(mail);
Debug.Log("success");

}
}
Un des commentaires indique aussi que:
Got IT! I found out I had to set Api Compatibility Level to ".NET 2.0" instead of ".NET 2.0 Subset" under player settings. Works great!!!
Salutations!
Merci pour ta réponse ! Cependant c'est le script que j'utilisais avant, et c'est à cause du fait qu'il ne fonctionnait pas que j'ai ouvert ce topic.
Ce script pose problème car il y a plein de restrictions google/gmail qui empeche la connexion à ton compte si celle-ci n'est pas faite depuis ton pc/ un pc de chez toi.
Enfaite ce script fait que l'utilisateur se connecte en quelque sorte à ton compte pour envoyer un email avec celui-ci. Sauf que dans mon cas et dans celui de beaucoup d'autre, la connexion n'est pas possible à cause des restrictions.

Certe il y a beaucoup de solutions sur le net, comme changer l'api avec subset (j'ai oublié le nom exact), ou passer par un lien avec UnlockCaptcha, mais ces solutions ne sont pas durables ou ne marchent pas. J'ai dans mon cas réussi à faire marcher cela sur les pc de quelques utilisateurs mais ça ne marche que quelques heures ou que sur les rares ip où j'avais visité le lien dont je parlais et peut être fait 2 3 manips avant.

C'est vrai que c'est un peu contraignant de passer par un script php, mais au moins pour moi ça fonctionne beaucoup mieux !

Merci tout de même pour ton aide ;)

Répondre

Revenir vers « (C#) CSharp »