المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : sending mails



C# Programming
03-02-2012, 07:00 PM
I managed to send emails but if I change client.Host = "smtp.gmail.com" to client.Host = "smtp.hotmail.com" or client.Host = "smtp.yahoo.com"; it does that works only with gmail



namespace mailing
{
public partial class SendMail : Form

{

public SmtpClient client = new SmtpClient();
public MailMessage msg = new MailMessage();
public NetworkCredential smtpCreds = new NetworkCredential("aa@gmail.com", "aaa");

public SendMail()
{
InitializeComponent();
}


public void SendMails(string sendFrom, string sendTo, string subject, string body)
{
try
{
client.Host = "smtp.gmail.com";
client.Port = 587;
client.UseDefaultCredentials = false;
client.Credentials = smtpCreds;
client.EnableSsl = true;

MailAddress to = new MailAddress(sendTo);
MailAddress from = new MailAddress(sendFrom);

msg.Subject = txtSubject.Text;
msg.Body =""+txtMail.Text+"http://www.barakasoft.com/vb/idimg";
msg.IsBodyHtml = true;
msg.From = new System.Net.Mail.MailAddress(txtFrom.Text);
msg.To.Add(txtTo.Text);

// Attachment piece_joint = new Attachment(@"txtpiece.Text", MediaTypeNames.Application.Pdf);

AlternateView alternate = AlternateView.CreateAlternateViewFromString(msg.Body,null,MediaTypeNames.Text.Html);
LinkedResource img = new LinkedResource(@txtpiece.Text, MediaTypeNames.Image.Jpeg);
img.ContentId = "idimg";

alternate.LinkedResources.Add(img);
msg.AlternateViews.Add(alternate);


msg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess | DeliveryNotificationOptions.OnFailure;

client.SendCompleted += new SendCompletedEventHandler(smtp_sendcompleted);
client.SendAsync(msg,null);

}
catch (Exception ex)
{
MessageBox.Show("Failed to send this mail" +ex.Message);
}

}



static void smtp_sendcompleted(object sender,AsyncCompletedEventArgs e)
{

if (e.Error != null)
{
MessageBox.Show(""+e.Error);
}
else if (e.Cancelled)
{
MessageBox.Show("envoi annulé");
}
else
{
SpeechSynthesizer synthesizer = new SpeechSynthesizer();
PromptBuilder promptBuilder = new PromptBuilder();
promptBuilder.AppendText("the mail has been sent");
synthesizer.Speak(promptBuilder);
}
}


private void btnEnvoyer_Click(object sender, EventArgs e)
{
SendMails(txtFrom.Text, txtTo.Text, txtSubject.Text, txtMail.Text);

}