webForumDet fria alternativet

problem med att skicka mail

.NET

10 svar · 1 246 visningar · startad av Sanji

Medlem sedan juli 2009355 inlägg
Frågan#1

Hej! jag har lite kod här för att skicka iväg ett mail, och så reggade jag mig nyss på papercuts webbversion och tänkte testa koden mot denna. Har även ett gmail-konto jag kan testa med. Slänger upp koden:

MailMessage message = new MailMessage(txtMailFrom.Text, txtMailTo.Text);
            MailAddressCollection to = new MailAddressCollection();
            to.Add(new MailAddress(txtMailTo.Text));
            message.Sender = new MailAddress(txtMailFrom.Text);
            message.From = new MailAddress(txtMailFrom.Text);
            message.Subject = txtMailSubject.Text;
            message.Body = GenerateMailBody(currentInquiry, currentSupplier);
            message.IsBodyHtml = true;
SmtpClient smtpSender = new SmtpClient("smtp.dummysmtp.com", 25);
            smtpSender.EnableSsl = true;
            smtpSender.Credentials = new System.Net.NetworkCredential("Monsterbadboll", "*****");
            smtpSender.UseDefaultCredentials = false;
            smtpSender.Send(message);

Här har vi då koden. när jag kör den så fastnar den alltid på sista raden (smtpSender.Send(message);) och säger: "smtpException was unhandled by user code" och i rutan på svenska: Det uppstod ett fel när e-postmeddelandet skulle skickas.

jag har ingen brandvägg aktiverad så det kan inte vara portens fel.

Dessutom så behöver ingen oroa sig över mitt lösenord som står där uppe, för det går inte att använda till inloggning eller något sådant, enbart till att skicka testmail till servern.

Det jag har testat:
1. byta port
2. byta mailserver till gmail
3. olika konton
4. Stänga av brandväggen i routern och på datorn
5. Sökt på google utan bra resultat
6. gått igenom stacktrace men förstod inte så mycket

Mvh Sanji

Medlem sedan juli 2009355 inlägg
#2

*Update

Får upp detta felmeddelande:

"Anslutningsförsöket misslyckades eftersom den anslutna datorn inte svarade inom en viss tid eller på grund av att den etablerade anslutningen till värddatorn inte längre fungerar "

Detta både med gmail och papercut

*Edit

Jag ser nu att detta felmeddelande endast kommer fram då man stoppar visual studio under tiden som sidan körs... kan ju vara därför anslutningen pajar.

Medlem sedan juli 2009355 inlägg
#3

finns det någon bra sida som berättar om att skicka mail med smtp? sitter fast, då mitt mail inte vill skickas. inte ens det enkla:

MailMessage msg = new MailMessage("monsterbadboll@gmail.com ", "monsterbadboll@gmail.com");
            msg.Sender = new MailAddress("monsterbadboll@gmail.com");
            msg.From = new MailAddress("monsterbadboll@gmail.com");
            msg.Subject = "Test";
            msg.Body = "Hopp och skutt";
            msg.IsBodyHtml = true;

            SmtpClient smtpsender = new SmtpClient("smtp.gmail.com", 25);
            smtpsender.EnableSsl = true;
            smtpsender.Credentials = new System.Net.NetworkCredential("monsterbadboll@hotmail.com", "*****");
            smtpsender.UseDefaultCredentials = false;
            smtpsender.Send(msg);

Fungerar att skicka.

Medlem sedan juli 2009355 inlägg
#4

Jag har ingen aning om vad det kan vara för fel, när jag testar att göra ett vanligt mail som det här så fungerar det ändå inte.

MailMessage msg = new MailMessage("monsterbadboll@gmail.com ", "monsterbadboll@gmail.com");
            msg.Sender = new MailAddress("monsterbadboll@gmail.com");
            msg.From = new MailAddress("monsterbadboll@gmail.com");
            msg.Subject = "Test";
            msg.Body = "Hopp och skutt";
            msg.IsBodyHtml = true;

            SmtpClient smtpsender = new SmtpClient("smtp.gmail.com", 25);
            smtpsender.EnableSsl = true;
            smtpsender.Credentials = new System.Net.NetworkCredential("monsterbadboll@gmail.com", "*****");
            smtpsender.UseDefaultCredentials = false;
            smtpsender.Send(msg);

Det borde gå... men det gör det inte, får bara fram att det är något fel

Medlem sedan juni 20006 031 inlägg
#5

//Redigerade ovanstående inlägg ifall lösenordet var ditt riktiga.

Pedda, Forumvärd

Medlem sedan juni 20003 076 inlägg
#6

Du får inget utförligare felmess?
Är du säker på att mailservern är inställd för att klara ssl?

Medlem sedan okt. 2006224 inlägg
#7

Hittade ett ganska bra svar på StackOverflow:

using System.Net.Mail;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";

var smtp = new SmtpClient
           {
               Host = "smtp.gmail.com",
               Port = 587,
               EnableSsl = true,
               DeliveryMethod = SmtpDeliveryMethod.Network,
               UseDefaultCredentials = false,
               Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
           };
using (var message = new MailMessage(fromAddress, toAddress)
                     {
                         Subject = subject,
                         Body = body
                     })
{
    smtp.Send(message);
}

Taget från SO.com

Så efter kollat igenom koden lite mer.. enligt Google så ska du använda port 587 när du går via SSL till Gmail. Kan vara problemet (eller ett av dom).

Medlem sedan juli 2009355 inlägg
#8

jag har testat med port 587, men det vill sig inte. jag fattar inte vad det är jag gör för fel, det är ju säkerligen något enkelt som jag inte ser... Ssl = Enabled

återkommer

Medlem sedan jan. 20023 327 inlägg
#9

Sitter du bakom ett hemmanätverk eller ett företagsnätverk? Jag kan inte heller skicka mail med Gmails smtp-server men det beror troligtvis på brandväggen här på jobbet. Om jag istället använder jobbets smtp-server så fungerar det utmärkt.

Medlem sedan sep. 20109 inlägg
#10

Tänk på att skicka mail är helt annorlunda från att ta emot. Att skicka mail är väldigt geografiskt orienterat, dvs ta just den smtp servern som servar ditt nätverk där du sitter. Alla ISP som levererar nätet där du sitter har en SMTP server du gott kan använda för detta endamål MEN skall den här kodsnutten som skickar mail sitts inuti en server på ett webhotell DÅ är det detta webhotells SMTP server som blir bästa och första valet.

Vart skall mail-kodsnutten du har köras någonstans? lokalt eller på en server någonstans?

Medlem sedan juli 2009355 inlägg
#11

Hej igen! jag har varit borta ett tag så jag har inte hunnit komma in och skriva här.

Jag tog och skrev om koden för att skicka mail från början, och då fungerande det. Felet låg ganska säkert i vilken port jag använde eller något liknande.

Applikationen kommer att ligga på en webbserver senare, men under tiden som jag testar så använder jag gmails smtp. detta kommer att ändras senare.

Jag sitter inte bakom en brandvägg. Anledningen till att jag inte använder ISPn's SMTP är att det inte finns några speciella krav just nu på smtp-servern, och gmails uppgifter var mycket lättare att få fram ^^

287 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
135 ms — deklarationer (db)
0 ms — hämta statistik (cache)
149 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)