Avatar billede webbe Nybegynder
02. august 2001 - 08:40 Der er 32 kommentarer og
1 løsning

Hjælp til JMail

Hejsa - jeg er igang med et intranet system, der (når man opretter en besked) skal sende en mail med beskeden til vores eksterne brugere (sælgere m.m.).

Jeg kan godt få JMail til at virke på alle mailadresser der kører på vores egen mail-server, men når det bliver fx. en hotmail-adresse får jeg følgende fejl:

jmail.SMTPMail error \'8000ffff\'

The message was undeliverable. All servers failed to receive the message

/sebg/ny.asp, line 132

Det undrer mig lidt for jeg har brugt samme script (dog lidt ændret) et andet sted.

Mit script ser således ud:

<%
Select Case Request.QueryString(\"action\")

Case \"save\"

Dim Connect, sql, rs, old_id, new_id, tid, sql2, sql3, sql4, Danmark, Norge, Sverige

Set Connect = Server.CreateObject(\"ADODB.Connection\")
Connect.Open \"sb_budget\", \"scanbox_admin\", \"scanboxadm\"

Set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.Open \"SELECT Id FROM Scan_info ORDER BY Id DESC\", Connect, 1, 3

If (rs.BOF OR rs.EOF) Then
    old_id = \"0\"
Else
    old_id = rs(\"Id\")
End if

new_id = old_id + 1

tid = Time()

If Request.Form(\"land\") = \"Danmark\" Then
    sql = \"INSERT INTO Scan_info (ID, Dato, Klokke, Navn, Subject, Text, Land) VALUES (\"&\"\'\"&new_id&\"\', \'\"&date&\"\', \'\"&tid&\"\', \'\"&Request.Form(\"navn\")&\"\', \'\"&Request.Form(\"subject\")&\"\', \'\"&Request.Form(\"text\")&\"\', \'\"&Request.Form(\"land\")&\"\')\"
    Connect.Execute(sql)
End if

If Request.Form(\"land\") = \"Norge\" Then
    sql2 = \"INSERT INTO Scan_info_no (ID, Dato, Klokke, Navn, Subject, Text, Land) VALUES (\"&\"\'\"&new_id&\"\', \'\"&date&\"\', \'\"&tid&\"\', \'\"&Request.Form(\"navn\")&\"\', \'\"&Request.Form(\"subject\")&\"\', \'\"&Request.Form(\"text\")&\"\', \'\"&Request.Form(\"land\")&\"\')\"
    Connect.Execute(sql2)
End if

If Request.Form(\"land\") = \"Sverige\" Then
    sql3 = \"INSERT INTO Scan_info_se (ID, Dato, Klokke, Navn, Subject, Text, Land) VALUES (\"&\"\'\"&new_id&\"\', \'\"&date&\"\', \'\"&tid&\"\', \'\"&Request.Form(\"navn\")&\"\', \'\"&Request.Form(\"subject\")&\"\', \'\"&Request.Form(\"text\")&\"\', \'\"&Request.Form(\"land\")&\"\')\"
    Connect.Execute(sql3)
End if

If Request.Form(\"land\") = \"Alle\" Then
    sql = \"INSERT INTO Scan_info (ID, Dato, Klokke, Navn, Subject, Text, Land) VALUES (\"&\"\'\"&new_id&\"\', \'\"&date&\"\', \'\"&tid&\"\', \'\"&Request.Form(\"navn\")&\"\', \'\"&Request.Form(\"subject\")&\"\', \'\"&Request.Form(\"text\")&\"\', \'\"&Request.form(\"danmark\")&\"\')\"
    Connect.Execute(sql)
    sql2 = \"INSERT INTO Scan_info_no (ID, Dato, Klokke, Navn, Subject, Text, Land) VALUES (\"&\"\'\"&new_id&\"\', \'\"&date&\"\', \'\"&tid&\"\', \'\"&Request.Form(\"navn\")&\"\', \'\"&Request.Form(\"subject\")&\"\', \'\"&Request.Form(\"text\")&\"\', \'\"&Request.Form(\"norge\")&\"\')\"
    Connect.Execute(sql2)
    sql3 = \"INSERT INTO Scan_info_se (ID, Dato, Klokke, Navn, Subject, Text, Land) VALUES (\"&\"\'\"&new_id&\"\', \'\"&date&\"\', \'\"&tid&\"\', \'\"&Request.Form(\"navn\")&\"\', \'\"&Request.Form(\"subject\")&\"\', \'\"&Request.Form(\"text\")&\"\', \'\"&Request.Form(\"Sverige\")&\"\')\"
    Connect.Execute(sql3)
End if

Dim subj, tekst, email, rs1, JMail

subj = Request.Form(\"subject\")
tekst = Request.Form(\"text\")

Set rs1 = Server.CreateObject(\"ADODB.Recordset\")
rs1.Open \"SELECT Mail FROM Info_mails\", Connect, 1, 3

do while not rs1.EOF

Set JMail = Server.CreateObject(\"JMail.SMTPMail\")

JMail.ServerAddress = \"mail.scanbox.dk\"
JMail.Sender = \"IntranetInfo@scanbox.com\"
JMail.Subject = subj
JMail.Body = tekst
JMail.AddRecipient rs1(\"Mail\")
JMail.Execute

rs1.MoveNext
loop

Set JMail = Nothing

Connect.Close
Set Connect = Nothing

Response.Redirect(\"intranet_dk.asp\")

End Select
%>
Avatar billede godtnok Nybegynder
02. august 2001 - 08:59 #1
prøv at benytte din udbyders mailserver istedet.
Avatar billede webbe Nybegynder
02. august 2001 - 09:00 #2
godtnok:

Det er vores egen mail-server der skal benyttes!
Vi har som sådan ikke nogen udbyder - så vidt jeg er informeret!
Avatar billede godtnok Nybegynder
02. august 2001 - 09:02 #3
Den fejl du får skyldes at din mailserver ikke svarer eller er forkert konfigureret.
Avatar billede webbe Nybegynder
02. august 2001 - 09:04 #4
Det kan jo ikke passe, da jeg bruger JMail til et andet projekt, som også benytter vores egen mailserver - og der kan den godt sende til fx. hotmail-adresser!
Avatar billede webbe Nybegynder
02. august 2001 - 09:06 #5
Iøvrigt kan man fra outlook godt sende til fx. hotmail-adresser, så det kan ikke være mail-serveren der er konfigureret forkert!
Avatar billede nuno Nybegynder
02. august 2001 - 09:08 #6
prøv at skrive dit ip-nummer til mail serveren istedet for \"mail.scanbox.dk\"

(du kan selv finde den ved at skrive ping mail.scanbox.dk i dos-prompt)

prøv endvidere at destruere objektet for hver gang du sender

do while not rs1.EOF

Set JMail = Server.CreateObject(\"JMail.SMTPMail\")

JMail.ServerAddress = \"111.111.111.111\"
JMail.Sender = \"IntranetInfo@scanbox.com\"
JMail.Subject = subj
JMail.Body = tekst
JMail.AddRecipient rs1(\"Mail\")
JMail.Execute
Set JMail = Nothing
rs1.MoveNext
loop



hvor \"111.111.111.111\" selvfølgelig erstattest med mailserverens ip-nr

Avatar billede nuno Nybegynder
02. august 2001 - 09:10 #7
du kan også prøve

JMail.AddRecipient Trim(rs1(\"Mail\"))

- jeg ved ikke om blank spaces evt. kan have en betydning
Avatar billede nuno Nybegynder
02. august 2001 - 09:12 #8
det skal dog lige siges, at dette er den \"officielle forklaring\" på problemet:


I get this errormessage: \" jmail. SMTPMail error \'8000ffff\' The message was undeliverable. All servers failed to recieve the message.\"


The mailserver(s) you specified either weren\'t set up to receive emails from your webserver or you didn\'t enter a valid mailserver. You must enter the full name or IPaddress, you can\'t just enter the network name of your mailserver. Also, some systems prefer if you specify port, which usually is 25.



Avatar billede webbe Nybegynder
02. august 2001 - 09:31 #9
Der er ikke noget af det der virker! ;o(
Avatar billede Slettet bruger
02. august 2001 - 09:36 #10
Et lille fif, jeg har oplevet før at det hjalp.

Tildel en variabel til rs1(\"Mail\")
Sådan her:
testMail = rs1(\"Mail\")
Ovenstående skal placeres før
do while not rs1.EOF

Derefter sætter du den til
JMail.AddRecipient testMail
Avatar billede Slettet bruger
02. august 2001 - 09:38 #11
Et forsøg værd
Avatar billede nuno Nybegynder
02. august 2001 - 09:44 #12
kongebro> så vil værdien af testMail ALTID være den første mailadresse i recordsettet? Og det er jo ik\' ligefrem brugbart.... :)

webbe> prøv at specificere portnummer

JMail.ServerAddress \"111.11.111.111:25\"


hvor alle 1-tallerne selvfølgelig igen skiftes ud med dit/jeres ip-nr. på mailserveren

:25 er dog default mailport - så prøv med den

/nuno
Avatar billede webbe Nybegynder
02. august 2001 - 09:53 #13
nuno:

No good.....det hjalp ikke noget som helst! ;o(
Avatar billede Slettet bruger
02. august 2001 - 10:00 #14
Jeg mente selvføleglig før
Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
jeg fik bare fat i den forkerten linje.
Avatar billede nuno Nybegynder
02. august 2001 - 10:01 #15
hmm - det er sgu underligt...... for den fejltype du får skulle ikke indikere noget med mail-adresser - er det kun hotmail adresser den \"brokker\" sig over?
Avatar billede webbe Nybegynder
02. august 2001 - 10:01 #16
Nej - det er alle adresser der ikke hedder noget med @scanbox.com !

Er sq noget weird shit!
Avatar billede nuno Nybegynder
02. august 2001 - 10:09 #17
det er ikke

JMail.Sender = \"IntranetInfo@scanbox.com\"

du ændrer vel?

istedet for JMail.AddRecipient?


jeg har selv brugt nedenstående JMail script i en dll-fil

Option Explicit

Dim oMail As jmail.SMTPMail
Const ServerAddress = \"mail.voresmailserver.dk\"

Private Sub Class_Initialize()
    Set oMail = CreateObject(\"jmail.SMTPMail\")
End Sub

Public Sub SendMail(ByVal inRecipient As String, ByVal inCCRecipients As String, ByVal inSubject As String, ByVal inBody As String)
    Dim i As Integer
    Dim arrCCRecipients() As String
On Error GoTo Errorhandler
    oMail.Sender = \"min@mailadr.dk\"
    oMail.SenderName = \"Nuno\"
    oMail.ServerAddress = ServerAddress
   
    oMail.AddRecipient inRecipient
   
    If inCCRecipients <> \"\" Then
        arrCCRecipients() = Split(inCCRecipients, \";\")
        For i = 0 To UBound(arrCCRecipients)
            oMail.AddRecipientCC arrCCRecipients(i)
        Next i
    End If
   
    oMail.Subject = inSubject
    oMail.Body = Now & vbCrLf & inBody
       
    oMail.ISOEncodeHeaders = False
    oMail.ContentTransferEncoding = \"8bit\"
   
    oMail.Silent = True
    oMail.Execute
Exit Sub
Errorhandler:
    Err.Clear
End Sub

Private Sub Class_Terminate()
    Set oMail = Nothing
End Sub



Og det virker - 100% sikkert.... så jeg forstår ikke hvorfor...

/nuno
Avatar billede webbe Nybegynder
02. august 2001 - 10:12 #18
nuno:

Nope - det er ikke afsendermailen jeg ændrer - det er kun det der angår modtagerne!

Det script du har brugt - kan det bruges i en ASP-fil?
Avatar billede nuno Nybegynder
02. august 2001 - 10:48 #19
ja det kan det godt - det skal bare lige \"rengøres\" for VB specifikke ting...


ServerAddress = \"mail.voresmailserver.dk\"

do while not rs1.EOF

Set JMail = Server.CreateObject(\"jmail.SMTPMail\")
JMail.Sender = \"min@mailadr.dk\"
JMail.SenderName = \"Nuno\"
JMail.ServerAddress = ServerAddress
sRecipient = CStr(Trim(rs1(\"Mail\")))
JMail.AddRecipient sRecipient

JMail.Subject = inSubject
JMail.Body = inBody

JMail.ISOEncodeHeaders = False
JMail.ContentTransferEncoding = \"8bit\"

JMail.Silent = True
JMail.Execute

Set JMail = Nothing

rs1.movenext
loop

sådan - så skulle det være tilpasset det du skal bruge... hvis du selv lige retter mail og serveradresser
Avatar billede webbe Nybegynder
02. august 2001 - 11:30 #20
nuno:

Hehe - der kommer godt nok ikke nogen fejl nu, men den sender stadig ikke til andre adresser end scanbox.com adresser!
Avatar billede nuno Nybegynder
02. august 2001 - 11:33 #21
hmm - du kan prøve at adde min mail adr. til en test: nunobow@yahoo.dk

(lyder som om det er en setting på mail serveren der skal ændres)

Avatar billede webbe Nybegynder
02. august 2001 - 11:35 #22
Havde lavet en testmail på hotmail, men prøver lige din oxo!
Avatar billede webbe Nybegynder
02. august 2001 - 11:41 #23
Har sendt to beskeder nu - den første var desværre tom, da jeg forsøgte at lægge scriptet i en anden fil uden held, men der er indhold i den sidste!
Avatar billede nuno Nybegynder
02. august 2001 - 11:54 #24
okay - min yahoo mail er liiiidt langsom lige nu - har selv sendt en mail til den for at tjekke det og det tog ca. 10 min. inden den nåede frem - så jeg giver den lige lidt tid...
Avatar billede webbe Nybegynder
02. august 2001 - 12:02 #25
Okay - men min hotmail kunne godt modtage fra min outlook, men har endnu ikke modtaget fra JMail-delen!
Avatar billede webbe Nybegynder
02. august 2001 - 12:06 #26
Mit script ser nu sådan her ud:

\'sender mail med beskeden til eksterne modtagere
Dim ServerAddress, rs1, JMail, Subject, Body, sRecipient

Subject = Request.Form(\"subject\")
Body = Request.Form(\"text\")

Set rs1 = Server.CreateObject(\"ADODB.Recordset\")
rs1.Open \"SELECT Mail from Info_mails\", Connect, 1, 3

ServerAddress = \"mail.scanbox.dk\"

do while not rs1.EOF

Set JMail = Server.CreateObject(\"JMail.SMTPMail\")
JMail.Sender = \"IntranetInfo@scanbox.com\"
JMail.SenderName = \"Scanbox Intranet Info\"
JMail.ServerAddress = ServerAddress
sRecipient = CStr(Trim(rs1(\"Mail\")))
JMail.AddRecipient sRecipient

JMail.Subject = Subject
JMail.Body = Body

JMail.ISOEncodeHeaders = False
JMail.ContentTransferEncoding = \"8bit\"

JMail.Silent = True
JMail.Execute

Set JMail = Nothing

rs1.MoveNext
loop

rs1.Close
Set rs1 = nothing
Avatar billede nuno Nybegynder
02. august 2001 - 12:24 #27
hmm jeg har heller ikke modtaget noget endnu.... men har omvendt lige fået en Eksperten mail fra et spørgsmål der blev accepteret kl. 11.10 - her over een time efter...

nu er det et rent gæt: (jeg VED ikke om det evt. KAN være dette):

kan du ændre mail.scanbox.dk til mail.scanbox.com? For umiddelbart er Sender jo en .com mailadresse - mens serveren er en .dk adresse. Alternativt - ændre IntranetInfo@scanbox.com til IntranetInfo@scanbox.dk?

men som sagt: det er et rent gæt - jeg aner ikke om det har betydning - kender ikke de tekniske specifikationer på JMail...
Avatar billede webbe Nybegynder
02. august 2001 - 12:30 #28
Det betyder ikke noget om man skriver .com eller .dk - serveren finder selv ud af delegere dem rundt!

Skulle heller ikke have noget med Sender at gøre....det kan jo være hvilken som helst adresse!
Avatar billede nuno Nybegynder
02. august 2001 - 12:51 #29
hmm - prøv at spørge jeres sys adm. om der er noget der kan gøre, at den ikke sender til andet end .com adresser, når der bliver brugt en komponent og ikke en klient (outlook)

Avatar billede nuno Nybegynder
02. august 2001 - 16:57 #30
jeg har stadig ikke fået mailen - og har dog modtaget et par stykker på accepterede spsm - som er sendt EFTER du må have sendt test mailen - jeg har ikke flere forslag.... andet end at få fat i sys. adm. og høre ham ad...
Avatar billede webbe Nybegynder
03. august 2001 - 08:40 #31
nuno:

Hmmmm - er totalt i vildrede.....kan slet ikke få det til at fungere....men tak for din indsats!
Avatar billede webbe Nybegynder
07. august 2001 - 12:17 #32
Lukker spørgsmålet, da det ikke længere er aktuelt!
Avatar billede -2000haj Nybegynder
22. februar 2002 - 01:58 #33
Du kunne jo have sat en mailserver up til formålet.. Bare en lille SMTP server.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester