윈도우 2000에서 CDONTS.NewMail을 이용해 메일을 보내던 기능이 윈도우 2003으로 버전업 하고나서 오류를 발생하고는 작동하지 않는다.
윈도우 2003은 CDONTS.NewMail대신 CDO.Message를 이용해서 메일 발송이 가능하다.
CDO.Message를 이용해 메일을 발송하려면 일단 SMTP서비스를 설치해서 기동되어 있어야 한다.
그후 코딩은 아래를 참고하면 된다.
Const cdoSendUsingPort = 2 '1일 경우 로컬(SMTP), 2일 경우 외부(SMTP)로 메일전송
Const strSmartHost = "xxx.xxx.xxx.xxx" '보낼 메일 Host Server 설정Set objMail = Server.CreateObject("CDO.Message") '메일 객체생성
Set objConf = objMail.Configuration 'Configuration 설정값을 저장할 objConf 객채 생성With objConf.Fields
.item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort ' 서버 접근방법을 설정합니다
.item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSmartHost ' 서버 주소를 설정합니다
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 ' 접근할 포트번호를 설정합니다
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30 ' 접속시도할 제한시간을 설정합니다
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 ' SMTP 접속 인증방법을 설정합니다
.item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "아이디" ' SMTP 서버에 인증할 ID를 입력합니다
.item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "암호" ' SMTP 서버에 인증할 암호를 입력합니다
.Update
End WithobjMail.from = 메일주소 '보내는이 메일
objMail.To = 메일주소 '받는사람 EmailobjMail.subject = "제목 들어가는곳"
objMail.HTMLBody = "HTML형식의 Body 들어가는곳. HTMLBody나 TextBody 둘중 하나를 선택"
objMail.TextBody = "TEXT형식의 Body 들어가는곳. HTMLBody나 TextBody 둘중 하나를 선택"
혹은
objMail.Body = "내용"
objMail.BodyFormat = 0 ' CdoBodyFormatHTML(0)는 HTML, CdoBodyFormatText(1)는 Text
objMail.BodyPart.Charset="ks_c_5601-1987" ' 한글을 위해선 꼭 넣어 주어야 합니다.
objMail.HTMLBodyPart.Charset="ks_c_5601-1987" ' 한글을 위해선 꼭 넣어 주어야 합니다.objMail.Importance = 2 ' 우선순위 CdoLow(0)은 낮게, CdoNomal(1)은 중간, CdoHigh(2)은 높게
objMail.Attachfile "파일패스", "파일명", 엔코딩방식 ' 첨부파일 엔코딩방식 : CdoEncodingUUencode(0)은 Ascii파일, CdoEncodingBase64(1)은 Binary파일objMail.send ' 메일을 보냅니다.
Set objConf = Nothing ' 설정값 객체를 닫습니다.
Set objMail = Nothing ' 메일 객체를 닫습니다.
하지만 소스를 수정하지 않고 CDONTS.NewMail을 이용한 기존의 소스를 그대로 쓸수도 있다.
아래의 첨부된 cdonts.dll 파일을 다운받아서
C:\WINDOWS\system32 경로에 cdonts.dll을 복사한 후에 아래의 명령어로 레지스트리에 등록한다
regsvr32.exe cdonts.dll
'업무적인 > WWW - ASP' 카테고리의 다른 글
| 윈도우 2003에서 ASP의 CDONTS.NewMail을 이용한 메일 보내기 (0) | 2008/02/22 |
|---|---|
| ASP - Chart FX에서 Property 몇가지 사용하기 (0) | 2007/01/22 |
| ASP - 변수를 꼭 선언하고 사용하자 (Option Explicit) (0) | 2007/01/19 |
아무리 다시 설치를 하고 TEMP 디렉토리의 파일을 지우고 해도 설치가 되지 않는다
결국 네이트온 고객센터에 문의하여 아래와 같은 답변을 받아서 해결했다.
문의하신 네이트온 설치 오류에 대해 답변드리겠습니다.
먼저, 보내주신 파일 잘 받아보았습니다.
대부분 윈도용 응용 프로그램은 installshield(인스톨쉴드)라는
설치 관리 프로그램을 사용하게 됩니다.
저희 네이트온도 마찬가지로 installshield(인스톨쉴드)라는 프로그램으로
설치가 진행되는데 현재 회원님께 나타난 증상은 윈도에 설치되어 있는
installshield(인스톨쉴드) 프로그램의 손상 등의 원인입니다.
이 문제를 해결하기 위해서는 installshield(인스톨쉴드)를 재설치해야 하며,
아래의 내용을 참고하셔서 재설치해 보시기 바랍니다.
네이트온이 실행되고 있다면 네이트온 상단 메뉴의 [파일] → [네이트온 종료]
메뉴를 이용하여 네이트온을 종료해 주시기 바랍니다.
1. 바탕화면의 [내 컴퓨터] 클릭
2. [C: 드라이브] → [Program Files] → [Common Files] 클릭
3. [InstallShield] → [Professional] → [RunTime] → [11]
4. 해당 [11] 폴더 삭제 → PC 재부팅
문제의 특성상 어떤 프로그램의 영향으로 오류가 발생하는지
정확히는 확인할 수 없으나, 그 원인이 installshield(인스톨쉴드)를 사용하는
다른 응용 프로그램의 설치 시에도 비슷한 증상이 발생할 수 있습니다.
참고하시길...
'업무적인 > 정보 - WWW, APP, PDS' 카테고리의 다른 글
| 네이트온(NATEON) 설치시 오류 해결 (0) | 2008/02/17 |
|---|---|
| Apache Tomcat 6x 와 JDK1.6x 를 설치후 아파치가 기동되지 않을때 (0) | 2008/02/08 |
| 윈도우2003에서 VS2005 서비스팩1을 설치할수 없을때 해결방법 (0) | 2008/02/04 |
| PHOTOSHOP CS3 버전에서 JPG를 RAW파일처럼 편집하기 (0) | 2007/12/27 |
기동되지 않고 중지 상태를 유지하는 현상이 생기더군요
[2008-02-08 03:18:22] [174 javajni.c] [error] 지정된 모듈을 찾을 수 없습니다.궁금해서 로그를 뒤졌더니 위와 같은 에러로그가 생성되었더군요.[2008-02-08 03:18:22] [986 prunsrv.c] [error] Failed creating java C:\Program Files\Java\jre1.6.0_04\bin\client\jvm.dll
[2008-02-08 03:18:22] [1260 prunsrv.c] [error] ServiceStart returned 1
해결방법은 msvcr71.dll 이라는 파일이 없어서 그런데 첨부되어진 msvcr71.dll 파일을
C:\WINDOWS\system32
디렉토리에 복사해 넣고 나서 아파치를 기동시켜면 잘 돌아간다.
'업무적인 > 정보 - WWW, APP, PDS' 카테고리의 다른 글
| 네이트온(NATEON) 설치시 오류 해결 (0) | 2008/02/17 |
|---|---|
| Apache Tomcat 6x 와 JDK1.6x 를 설치후 아파치가 기동되지 않을때 (0) | 2008/02/08 |
| 윈도우2003에서 VS2005 서비스팩1을 설치할수 없을때 해결방법 (0) | 2008/02/04 |
| PHOTOSHOP CS3 버전에서 JPG를 RAW파일처럼 편집하기 (0) | 2007/12/27 |
"이 제품에 대한 설치 원본을 사용할 수 없습니다." 라는 메시지와 함께 설치가 되지 않는 경우가 있더군요.
이 문제는 윈도우2003의 보안 정책중 하나인 소프트웨어 제한 정책을 사용하여 해결이 가능합니다.
1. 관리도구메뉴에서 로컬보안정책 프로그램 실행
2. 소프트웨어 제한 정책 항목을 선택후 오른쪽 마우스를 클릭해서 새 소프트웨어 제한 정책 생성
3. 생성된 새 소프트웨어 제한 정책에서 오른쪽 마우스를 클릭후 속성을 선택
4. 팝업화면에서 사용자에 대한 소프트웨어 정책 항목중 로컬 관리자를 제외한 모든 사용자 항목을 선택후 확인
5. Microsoft Visual Studio 2005 Service Pack 1을 설치
6. 소프트웨어 제한 정책 항목에 오른쪽 마우스를 클릭해서 소프트웨어 제한정책 삭제
'업무적인 > 정보 - WWW, APP, PDS' 카테고리의 다른 글
| Apache Tomcat 6x 와 JDK1.6x 를 설치후 아파치가 기동되지 않을때 (0) | 2008/02/08 |
|---|---|
| 윈도우2003에서 VS2005 서비스팩1을 설치할수 없을때 해결방법 (0) | 2008/02/04 |
| PHOTOSHOP CS3 버전에서 JPG를 RAW파일처럼 편집하기 (0) | 2007/12/27 |
| 사이트가입시 한메일로 가입안되는 사이트 한메일로 가입하기 (0) | 2007/12/27 |
Microsoft 사이트에서 무료로 ASP.NET 관련 서적을 무료로 배포하는군요.
책의 정가가 52,000원이나 하는 책인데 마침 ASP.NET을 공부할일이 있어서 유용하게 보고 있는중입니다.
ASP.NET으로 작업할 수 있도록 기본 빌딩 블록들을 조합하는 법을 빠르게 배울 수 있고 초급 개발자와 숙련된 개발자들이 매일 실무 현장에서 부딪히며 접하게 되는 실전 예제들을 보게 될 것입니다. 이해하기 쉬운 설명으로 공통 언어 런타임(Common Language Runtime)과 웹 폼(Web Form), XML 웹 서비스, Microsoft .NET 프레임워크와 같은 기본 도구와 기술을 이해하는 데 많은 도움을 얻을 수 있습니다.
ASP.NET을 사용하여 확장성이 좋은 고성능 웹 응용 프로그램을 만들면서 제시되는 여러 실천사례들에 대해 전문가의 설명과 유용한 팁이 이 책으로 공부하는 여러분에게 보다 많은 도움을 줄 것입니다.
책 다운로드 링크 : 다운로드 (출처 : http://www.microsoft.com/)
Step by Step ASP.NET 예제.zip출처 : 정보문화사 (http://www.infopub.co.kr/)
'업무적인 > WWW - ASP.NET' 카테고리의 다른 글
| ASP.NET - 무료서적 ASP.NET Step by Step (한글 번역본) (0) | 2008/01/07 |
|---|
프로그램이 항상 위에 표시되도록 하는 기능과 ALT+TAB, ALT+F4 키등 시스템키를 사용하지 못하도록 제한하는 기능
### FORM 소스 ###
Option Explicit
'
' 항상 위
'
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_NOTOPMOST = -2 'Not Always top
Private Const HWND_TOPMOST = -1 'Always top
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1
'
' 키 작동 정지
'
Dim hhkLowLevelKybd As Long
'
' 항상 위
'
Public Sub AlwaysOn(ByVal frmForm As Object, ByVal OnOff As Integer)
Dim hWndMode As Integer
hWndMode = Choose(OnOff + 1, -2, -1)
SetWindowPos frmForm.hwnd, hWndMode, 0, 0, 10, 10, SWP_NOMOVE Or SWP_NOSIZE
End Sub
'
' 키 작동 정지
'
Public Sub KeyDisable(ByVal OnOff As Integer)
If OnOff = 1 Then
hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0)
Else
UnhookWindowsHookEx hhkLowLevelKybd
End If
End Sub
'
' 공통
'
Private Sub Form_Load()
Call AlwaysOn(Me, 1) ' 항상 위 설정 "1" 해제 "0"
Call KeyDisable(1) ' 키 작동 정지 "1" 해제 "0"
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call KeyDisable(0) ' 키 작동 정지 "1" 해제 "0"
End Sub
### 시스템키 제한 모듈 소스 ###
'
' 키 작동 정지
'
Option Explicit
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public Const HC_ACTION = 0
Public Const WM_KEYDOWN = &H100
Public Const WM_KEYUP = &H101
Public Const WM_SYSKEYDOWN = &H104
Public Const WM_SYSKEYUP = &H105
Public Const WND_KEY = 91
Public Const WH_KEYBOARD_LL = 13
Public Const LLKHF_ALTDOWN = &H20
Public Const VK_TAB = &H9
Public Const VK_CONTROL = &H11
Public Const VK_ESCAPE = &H1B
Public Const VK_F4 = &H73
Public Type KBDLLHOOKSTRUCT
vkCode As Long
scanCode As Long
flags As Long
time As Long
dwExtraInfo As Long
End Type
Dim p As KBDLLHOOKSTRUCT
Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim fEatKeystroke As Boolean
Dim a As Integer
If (nCode = HC_ACTION) Then
If wParam = WM_KEYDOWN Or wParam = WM_SYSKEYDOWN Or wParam = WM_KEYUP Or wParam = WM_SYSKEYUP Then
CopyMemory p, ByVal lParam, Len(p)
fEatKeystroke = _
((p.vkCode = VK_F4) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _
((p.vkCode = VK_TAB) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _
((p.vkCode = VK_ESCAPE) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _
((p.vkCode = WND_KEY) And ((p.scanCode = WND_KEY) <> 0)) Or _
((p.vkCode = VK_ESCAPE) And ((GetKeyState(VK_CONTROL) And &H8000) <> 0))
End If
End If
If fEatKeystroke Then
LowLevelKeyboardProc = -1
Else
LowLevelKeyboardProc = CallNextHookEx(0, nCode, wParam, ByVal lParam)
End If
End Function
'업무적인 > APP - VB' 카테고리의 다른 글
| VB6.0 - AlwaysOnTop 기능 및 시스템키(Alt+Tab) 작동 제한 프로그램 (소스포함) (0) | 2008/01/03 |
|---|---|
| VB6.0 - 도움말 : KEYCODE 상수 (0) | 2008/01/03 |
| VB6.0 - SOCKET을 이용한 멀티통신 테스트 (자작소스포함) (0) | 2007/12/27 |
아래 상수는 실제값 대신 코드의 어느 부분에서도 사용할 수 있습니다.
| 상수 | 값 | 설명 |
| VbKeyLButton | 0x1 | 마우스 왼쪽 단추 |
| VbKeyRButton | 0x2 | 마우스 오른쪽 단추 |
| VbKeyCancel | 0x3 | 취소키 |
| VbKeyMButton | 0x4 | 가운데 마우스 단추 |
| VbKeyBack | 0x8 | 백스페이스키 |
| VbKeyTab | 0x9 | <Tab>키 |
| VbKeyClear | 0xC | <Clear>키 |
| VbKeyReturn | 0xD | <Enter>키 |
| VbKeyShift | 0x10 | <Shift>키 |
| VbKeyControl | 0x11 | <Ctrl>키 |
| VbKeyMenu | 0x12 | 메뉴키 |
| VbKeyPause | 0x13 | <Pause>키 |
| VbKeyCapital | 0x14 | <Caps Lock>키 |
| VbKeyEscape | 0x1B | <Esc>키 |
| VbKeySpace | 0x20 | 스페이스바키 |
| VbKeyPageUp | 0x21 | <Page Up>키 |
| VbKeyPageDown | 0x22 | <Page Down>키 |
| VbKeyEnd | 0x23 | <End>키 |
| VbKeyHome | 0x24 | <Home>키 |
| VbKeyLeft | 0x25 | 왼쪽 화살표키 |
| VbKeyUp | 0x26 | 위쪽 화살표키 |
| VbKeyRight | 0x27 | 오른쪽 화살표키 |
| VbKeyDown | 0x28 | 아래쪽 화살표키 |
| VbKeySelect | 0x29 | 선택키 |
| VbKeyPrint | 0x2A | <Print Screen>키 |
| VbKeyExecute | 0x2B | 실행키 |
| VbKeySnapshot | 0x2C | 스냅샷키 |
| VbKeyInsert | 0x2D | <Insert>키 |
| VbKeyDelete | 0x2E | <Delete>키 |
| VbKeyHelp | 0x2F | <Help>키 |
| VbKeyNumlock | 0x90 | <Num Lock>키 |
A키에서 Z키는 ASCII의 A에서 Z와 동일합니다.
| 상수 | 값 | 설명 |
| VbKeyA | 65 | A키 |
| VbKeyB | 66 | B키 |
| VbKeyC | 67 | C키 |
| VbKeyD | 68 | D키 |
| VbKeyE | 69 | E키 |
| VbKeyF | 70 | F키 |
| VbKeyG | 71 | G키 |
| VbKeyH | 72 | H키 |
| VbKeyI | 73 | I키 |
| VbKeyJ | 74 | J키 |
| VbKeyK | 75 | K키 |
| VbKeyL | 76 | L키 |
| VbKeyM | 77 | M키 |
| VbKeyN | 78 | N키 |
| VbKeyO | 79 | O키 |
| VbKeyP | 80 | P키 |
| VbKeyQ | 81 | Q키 |
| VbKeyR | 82 | R키 |
| VbKeyS | 83 | S키 |
| VbKeyT | 84 | T키 |
| VbKeyU | 85 | U키 |
| VbKeyV | 86 | V키 |
| VbKeyW | 87 | W키 |
| VbKeyX | 88 | X키 |
| VbKeyY | 89 | Y키 |
| VbKeyZ | 90 | Z키 |
0키에서 9키는 ASCII의 0에서 9와 동일합니다.
| 상수 | 값 | 설명 |
| vbKey0 | 48 | 0 키 |
| vbKey1 | 49 | 1 키 |
| vbKey2 | 50 | 2 키 |
| vbKey3 | 51 | 3 키 |
| vbKey4 | 52 | 4 키 |
| vbKey5 | 53 | 5 키 |
| vbKey6 | 54 | 6 키 |
| vbKey7 | 55 | 7 키 |
| vbKey8 | 56 | 8 키 |
| vbKey9 | 57 | 9 키 |
다음의 상수들은 숫자키 모음의 키들을 나타냅니다.
| 상수 | 값 | 설명 |
| vbKeyNumpad0 | 0x60 | 0 키 |
| vbKeyNumpad1 | 0x61 | 1 키 |
| vbKeyNumpad2 | 0x62 | 2 키 |
| vbKeyNumpad3 | 0x63 | 3 키 |
| vbKeyNumpad4 | 0x64 | 4 키 |
| vbKeyNumpad5 | 0x65 | 5 키 |
| vbKeyNumpad6 | 0x66 | 6 키 |
| vbKeyNumpad7 | 0x67 | 7 키 |
| vbKeyNumpad8 | 0x68 | 8 키 |
| vbKeyNumpad9 | 0x69 | 9 키 |
| vbKeyMultiply | 0x6A | 곱하기 기호(*)키 |
| vbKeyAdd | 0x6B | 더하기 기호(+)키 |
| vbKeySeparator | 0x6C | <Enter>키 |
| vbKeySubtract | 0x6D | 빼기 기호(–)키 |
| vbKeyDecimal | 0x6E | 소수점(.)키 |
| vbKeyDivide | 0x6F | 나누기 기호(/)키 |
다음의 상수들은 기능키를 나타냅니다.
| 상수 | 값 | 설명 |
| vbKeyF1 | 0x70 | <F1>키 |
| vbKeyF2 | 0x71 | <F2>키 |
| vbKeyF3 | 0x72 | <F3>키 |
| vbKeyF4 | 0x73 | <F4>키 |
| vbKeyF5 | 0x74 | <F5>키 |
| vbKeyF6 | 0x75 | <F6>키 |
| vbKeyF7 | 0x76 | <F7>키 |
| vbKeyF8 | 0x77 | <F8>키 |
| vbKeyF9 | 0x78 | <F9>키 |
| vbKeyF10 | 0x79 | <F10>키 |
| vbKeyF11 | 0x7A | <F11>키 |
| vbKeyF12 | 0x7B | <F12>키 |
| vbKeyF13 | 0x7C | <F13>키 |
| vbKeyF14 | 0x7D | <F14>키 |
| vbKeyF15 | 0x7E | <F15>키 |
| vbKeyF16 | 0x7F | <F16>키 |




cdonts.dll
이올린에 북마크하기
이올린에 추천하기