walteau
Messages postés23Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention13 janvier 2007
-
25 nov. 2005 à 20:50
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
26 nov. 2005 à 16:03
Bonsoir, je suis en pleine création d'une classe Smtp dont voici la source:
using System;
using System.Collections.Generic;
using System.Text;
using m =System.Net.Mail;
using System.Net.Mime;
using System.Net;
using System.Net.Mail;
private m.MailMessage _Message;
/// <summary>
/// Initializes a new instance of the <see cref="SmtpSend"/> class.
/// </summary>
/// L'adresse du serveur SMTP
/// L'IP du serveur SMTP
/// Adresse de l'expéditeur
/// Nom de l'expéditeur
/// Adresse du destinataire
/// Objet du message
/// Contenu du message
/// Fichiers attachés
public SmtpSend(string SmtpServer,int SmtpServerIp,string FromAdress,string FromName,string ToAdress,string Subject,string Body,string[] AttachFile)
{
_SmtpServer = SmtpServer;
_SmtpServerIp = SmtpServerIp;
_From = FromAdress;
_FromName = FromName;
_To = ToAdress;
_Subject = Subject;
_Body = Body;
_AttchFile = AttachFile;
}
// private string[] _AttchFile = { @"C:\temp\CV.doc", @"C:\temp\LM.doc" };
/// <summary>
/// Permet d'envoyer un message électronique.
/// </summary>
/// <returns>Retourne un booléen indiquant si le message a bien été émis.</returns>
public bool IsMailSent()
{
bool blnSuccess = true;
// try
// {
m.SmtpClient smtp = new System.Net.Mail.SmtpClient(this._SmtpServer);
m.MailAddress Sender = new System.Net.Mail.MailAddress(this._From, this._FromName);
m.MailAddress Recept = new System.Net.Mail.MailAddress(this._To);
m.MailMessage _Message = new m.MailMessage();
_Message.From = Sender;
// Attache au message chacun des éventuels fichiers.
if (this._AttchFile != null)
{
foreach(string str in this._AttchFile)
{
Attachment data = new Attachment(str, MediaTypeNames.Application.Octet);
data.Name = "Un_Nom"; /* Ici se pose le probleme,si je commente cette ligne, le mail ne part pas! Si je met un nom avec une extension, le meme probleme se pose....
Je ne sais pas quoi faire pour corriger se probleme, et faire en sorte que la pièce jointe porte le nom du fichier... */
_Message.Attachments.Add(data);
// } Les balise try, catch et finally sont commentées, afin de pouvoir deceler les bugs...
// catch (Exception)
// {
blnSuccess = false;
// }
// finally
// {
this._Message = null;
// }
return blnSuccess;
}
}
}
Quelqu'un aurait-il une solution à me proposer ?
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 26 nov. 2005 à 14:46
Oups, ma phrase du dessus n'est pas très comprehensible en fait
"Le problème pourrait peut être être sur le serveur mail : tu ne testerais pas vers une boite gmail, j'ai abandonner cette chose à cause de ça..."
=> Si tu utilises une boite GMail pour tes test, essaie avec autre chose (type yahoo, marche très bien).
Dans mon cas GMail m'envoyais toujours bouler à chaque fois qu'une pièce jointe était une archive (illegal attachment), ça tombe bien, on n'utilise en général très peu ce genre de chose en pièce jointe...
Car si tu n'as pas de retour d'erreur par le code d'envoi, je ne vois pas pourquoi le mail ne part pas, à moins d'un relai SMTP grincheux sur le trajet :-)
// Attache au message chacun des éventuels fichiers.
if (this._AttchFile != null)
{
foreach(string str in this._AttchFile)
{
Attachment data = new Attachment(str, MediaTypeNames.Application.Octet);
data.Name = "Un_Nom"; /* Ici se pose le probleme,si je commente cette ligne, le mail ne part pas! Si je met un nom avec une extension, le meme probleme se pose....
Je ne sais pas quoi faire pour corriger se probleme, et faire en sorte que la pièce jointe porte le nom du fichier... */
_Message.Attachments.Add(data);
#if !DEBUG
} Les balise try, catch et finally sont commentées, afin de pouvoir deceler les bugs...
catch (Exception)
{
blnSuccess = false;
}
finally
{
this._Message = null;
}
#else
blnSuccess = false;
this._Message = null;
#endif
return blnSuccess;
}
Ainsi la gestion des erreurs sera présente dans le code compilé pour n'importe quel profil de compilation, sauf ceux pour lesquels la constante DEBUG est définie (par défaut juste dans "Debug")
walteau
Messages postés23Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention13 janvier 2007 26 nov. 2005 à 13:44
Merci pour cette info, mais le probleme qui ce pose, c'est l'extension du fichier,
pour data.Name = "Un_Nom.extension".
Pour l'extension *.jpg le mail passe par contre pour une extension du type *.rar ou *.zip le mail n'arrive pas dans ma boite mail ...
Peut tu m'eclairer ?
MERCI
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 26 nov. 2005 à 14:02
Je ne vois pas trop non.
Le problème pourrait peut être être sur le serveur mail : tu ne testerais pas vers une boite gmail, j'ai abandonner cette chose à cause de ça...
/*
coq
MVP Visual C#
*/
Vous n’avez pas trouvé la réponse que vous recherchez ?
walteau
Messages postés23Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention13 janvier 2007 26 nov. 2005 à 15:46
En fait je reçois a chaque erreur ceci sur ma boite mail d'expedition :
<hr size="2" width="100%">This is the Postfix program at host smtp2-g19.free.fr.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The Postfix program
<firstwalteau@gmail.com>: host gmail-smtp-in.l.google.com[72.14.205.27] said:
552 5.7.0 Illegal Attachment q18si1559106qbq (in reply to end of DATA
command)
<hr size="2" width="100%">Comment puis-je contourner ça ? Car en fait je peu dorenavent envoyer vers n'importe quelle boite mail...
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 26 nov. 2005 à 15:50
En laissant tomber GM**** :-)
Perso je n'ai aps trouver d'autre solution, j'ai switcher sur une boite yahoo qui contient moins mais qui au moins fonctionne correctement...
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 26 nov. 2005 à 16:03
Tu obtiendras la même chose en envoyant depuis un autre client.
Moi ça le faisait quand je m'en servait en tant que boite backup d'une autre boite alors...