- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
West Wind Technologies
Making waves on the Web
from Maui
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
http://www.west-wind.com/webconnection/docs/?page=_3rf12jtma.htm
This doesn't explain why you said this worked intermittently previously - this would fail every time if not configured properly.
+++ Rick ---
Hi Rick,
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
West Wind Technologies
Making waves on the Web
from Maui
No it has never worked. Smtp without authorization or without TLS works 100%. As soon as I turn on lUseSsl it fails. I have tried everything and I did read the link you sent below. The only idea I have left is that I have several versions of .NET installed. Does it use the highest version? Highest version I have is 4.0.30319 and it might be a client-only version but how do you tell?
Check here:
http://www.west-wind.com/webconnection/docs/?page=_3rf12jtma.htm
This doesn't explain why you said this worked intermittently previously - this would fail every time if not configured properly.
+++ Rick ---
Hi Rick,
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
If you install 4.5 it'll overwrite 4.0 (it's an inplace replacement) and there's no client install. wwDotnetBridge tries to locate the latest version to use typically but it's not always reliable.
You can force a particular version (V2 or V4) by specifying loading wwDotnetBridge at the beginning of your application and loading a particular version. Since there is only one .NET runtime loaded per process, it will always use that.
The easiest way to check is:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge")
? loBridge.GetDotnetVersion()
To force a specific version:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge","V4")
? loBridge.GetDotnetVersion()
If this works then you've gone past the issue that's causing your error.
+++ Rick ---
Hi Rick,
No it has never worked. Smtp without authorization or without TLS works 100%. As soon as I turn on lUseSsl it fails. I have tried everything and I did read the link you sent below. The only idea I have left is that I have several versions of .NET installed. Does it use the highest version? Highest version I have is 4.0.30319 and it might be a client-only version but how do you tell?
Check here:
http://www.west-wind.com/webconnection/docs/?page=_3rf12jtma.htm
This doesn't explain why you said this worked intermittently previously - this would fail every time if not configured properly.
+++ Rick ---
Hi Rick,
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
West Wind Technologies
Making waves on the Web
from Hood River
TLS authentication is working OK now. I had to install .NET 4.5.2 even though wwDotnetBridge says we are using 2.0. We'll be upgrading to the latest wwClientTools product.
I have two remaining questions:
- If I am using wwSmtp only, with and without TLS, do customers need the VS 2010 runtime files installed?
- Does wwClientTools still support calling up the internet dialer? Probably a dumb question but I don't see the method in the classes anymore.
Thanks for your help!
I think it says in Programs and Features which version(s) you have installed.
If you install 4.5 it'll overwrite 4.0 (it's an inplace replacement) and there's no client install. wwDotnetBridge tries to locate the latest version to use typically but it's not always reliable.
You can force a particular version (V2 or V4) by specifying loading wwDotnetBridge at the beginning of your application and loading a particular version. Since there is only one .NET runtime loaded per process, it will always use that.
The easiest way to check is:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge")
? loBridge.GetDotnetVersion()
To force a specific version:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge","V4")
? loBridge.GetDotnetVersion()
If this works then you've gone past the issue that's causing your error.
+++ Rick ---
Hi Rick,
No it has never worked. Smtp without authorization or without TLS works 100%. As soon as I turn on lUseSsl it fails. I have tried everything and I did read the link you sent below. The only idea I have left is that I have several versions of .NET installed. Does it use the highest version? Highest version I have is 4.0.30319 and it might be a client-only version but how do you tell?
Check here:
http://www.west-wind.com/webconnection/docs/?page=_3rf12jtma.htm
This doesn't explain why you said this worked intermittently previously - this would fail every time if not configured properly.
+++ Rick ---
Hi Rick,
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
Best way is to install .NET 4.51 or whatever the current latest is as it will upgrade the client profile to the full version.
+++ Rick ---
Hi Rick,
No it has never worked. Smtp without authorization or without TLS works 100%. As soon as I turn on lUseSsl it fails. I have tried everything and I did read the link you sent below. The only idea I have left is that I have several versions of .NET installed. Does it use the highest version? Highest version I have is 4.0.30319 and it might be a client-only version but how do you tell?
Check here:
http://www.west-wind.com/webconnection/docs/?page=_3rf12jtma.htm
This doesn't explain why you said this worked intermittently previously - this would fail every time if not configured properly.
+++ Rick ---
Hi Rick,
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
West Wind Technologies
Making waves on the Web
from Maui
You shouldn't need anything special if you're using classic wwSmtp (ie. non-.NET). Whatever is required to run VFP is enough.
InternDial is deprecated. It's still there (in wwAPI) but it doesn't actually work although you could make that work. It's become pretty much obsolete. Who dials a phone or connection anymore for a connection???
+++ Rick ---
Thanks Rick that was super helpful. And it's a way to allow my users to detect what version of .NET, if any, they have.
TLS authentication is working OK now. I had to install .NET 4.5.2 even though wwDotnetBridge says we are using 2.0. We'll be upgrading to the latest wwClientTools product.
I have two remaining questions:
- If I am using wwSmtp only, with and without TLS, do customers need the VS 2010 runtime files installed?
- Does wwClientTools still support calling up the internet dialer? Probably a dumb question but I don't see the method in the classes anymore.
Thanks for your help!
I think it says in Programs and Features which version(s) you have installed.
If you install 4.5 it'll overwrite 4.0 (it's an inplace replacement) and there's no client install. wwDotnetBridge tries to locate the latest version to use typically but it's not always reliable.
You can force a particular version (V2 or V4) by specifying loading wwDotnetBridge at the beginning of your application and loading a particular version. Since there is only one .NET runtime loaded per process, it will always use that.
The easiest way to check is:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge")
? loBridge.GetDotnetVersion()
To force a specific version:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge","V4")
? loBridge.GetDotnetVersion()
If this works then you've gone past the issue that's causing your error.
+++ Rick ---
Hi Rick,
No it has never worked. Smtp without authorization or without TLS works 100%. As soon as I turn on lUseSsl it fails. I have tried everything and I did read the link you sent below. The only idea I have left is that I have several versions of .NET installed. Does it use the highest version? Highest version I have is 4.0.30319 and it might be a client-only version but how do you tell?
Check here:
http://www.west-wind.com/webconnection/docs/?page=_3rf12jtma.htm
This doesn't explain why you said this worked intermittently previously - this would fail every time if not configured properly.
+++ Rick ---
Hi Rick,
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
West Wind Technologies
Making waves on the Web
from Maui
We can close this thread, thanks Rick for all your help. Great product!
You shouldn't need anything special if you're using classic wwSmtp (ie. non-.NET). Whatever is required to run VFP is enough.
InternDial is deprecated. It's still there (in wwAPI) but it doesn't actually work although you could make that work. It's become pretty much obsolete. Who dials a phone or connection anymore for a connection???
+++ Rick ---
Thanks Rick that was super helpful. And it's a way to allow my users to detect what version of .NET, if any, they have.
TLS authentication is working OK now. I had to install .NET 4.5.2 even though wwDotnetBridge says we are using 2.0. We'll be upgrading to the latest wwClientTools product.
I have two remaining questions:
- If I am using wwSmtp only, with and without TLS, do customers need the VS 2010 runtime files installed?
- Does wwClientTools still support calling up the internet dialer? Probably a dumb question but I don't see the method in the classes anymore.
Thanks for your help!
I think it says in Programs and Features which version(s) you have installed.
If you install 4.5 it'll overwrite 4.0 (it's an inplace replacement) and there's no client install. wwDotnetBridge tries to locate the latest version to use typically but it's not always reliable.
You can force a particular version (V2 or V4) by specifying loading wwDotnetBridge at the beginning of your application and loading a particular version. Since there is only one .NET runtime loaded per process, it will always use that.
The easiest way to check is:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge")
? loBridge.GetDotnetVersion()
To force a specific version:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge","V4")
? loBridge.GetDotnetVersion()
If this works then you've gone past the issue that's causing your error.
+++ Rick ---
Hi Rick,
No it has never worked. Smtp without authorization or without TLS works 100%. As soon as I turn on lUseSsl it fails. I have tried everything and I did read the link you sent below. The only idea I have left is that I have several versions of .NET installed. Does it use the highest version? Highest version I have is 4.0.30319 and it might be a client-only version but how do you tell?
Check here:
http://www.west-wind.com/webconnection/docs/?page=_3rf12jtma.htm
This doesn't explain why you said this worked intermittently previously - this would fail every time if not configured properly.
+++ Rick ---
Hi Rick,
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
+++ Rick ---
I agree. I decided to remove the dialer option from the product. Sorry I am not clear on question #1. For using smtp but WITH TLS, does the customer need the VS 2010 runtime DLLs?
We can close this thread, thanks Rick for all your help. Great product!
You shouldn't need anything special if you're using classic wwSmtp (ie. non-.NET). Whatever is required to run VFP is enough.
InternDial is deprecated. It's still there (in wwAPI) but it doesn't actually work although you could make that work. It's become pretty much obsolete. Who dials a phone or connection anymore for a connection???
+++ Rick ---
Thanks Rick that was super helpful. And it's a way to allow my users to detect what version of .NET, if any, they have.
TLS authentication is working OK now. I had to install .NET 4.5.2 even though wwDotnetBridge says we are using 2.0. We'll be upgrading to the latest wwClientTools product.
I have two remaining questions:
- If I am using wwSmtp only, with and without TLS, do customers need the VS 2010 runtime files installed?
- Does wwClientTools still support calling up the internet dialer? Probably a dumb question but I don't see the method in the classes anymore.
Thanks for your help!
I think it says in Programs and Features which version(s) you have installed.
If you install 4.5 it'll overwrite 4.0 (it's an inplace replacement) and there's no client install. wwDotnetBridge tries to locate the latest version to use typically but it's not always reliable.
You can force a particular version (V2 or V4) by specifying loading wwDotnetBridge at the beginning of your application and loading a particular version. Since there is only one .NET runtime loaded per process, it will always use that.
The easiest way to check is:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge")
? loBridge.GetDotnetVersion()
To force a specific version:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge","V4")
? loBridge.GetDotnetVersion()
If this works then you've gone past the issue that's causing your error.
+++ Rick ---
Hi Rick,
No it has never worked. Smtp without authorization or without TLS works 100%. As soon as I turn on lUseSsl it fails. I have tried everything and I did read the link you sent below. The only idea I have left is that I have several versions of .NET installed. Does it use the highest version? Highest version I have is 4.0.30319 and it might be a client-only version but how do you tell?
Check here:
http://www.west-wind.com/webconnection/docs/?page=_3rf12jtma.htm
This doesn't explain why you said this worked intermittently previously - this would fail every time if not configured properly.
+++ Rick ---
Hi Rick,
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
West Wind Technologies
Making waves on the Web
from Hood River
After hours of work and testing and after distributing the new product, I am having problems again on two of my test PCs. Now SendMail, when using SMTP, is returning "500 Command Unrecognized" error. Is this an error from the mail server?
No you shouldn't need any extra runtimes beyond FoxPro and .NET installed.
+++ Rick ---
I agree. I decided to remove the dialer option from the product. Sorry I am not clear on question #1. For using smtp but WITH TLS, does the customer need the VS 2010 runtime DLLs?
We can close this thread, thanks Rick for all your help. Great product!
You shouldn't need anything special if you're using classic wwSmtp (ie. non-.NET). Whatever is required to run VFP is enough.
InternDial is deprecated. It's still there (in wwAPI) but it doesn't actually work although you could make that work. It's become pretty much obsolete. Who dials a phone or connection anymore for a connection???
+++ Rick ---
Thanks Rick that was super helpful. And it's a way to allow my users to detect what version of .NET, if any, they have.
TLS authentication is working OK now. I had to install .NET 4.5.2 even though wwDotnetBridge says we are using 2.0. We'll be upgrading to the latest wwClientTools product.
I have two remaining questions:
- If I am using wwSmtp only, with and without TLS, do customers need the VS 2010 runtime files installed?
- Does wwClientTools still support calling up the internet dialer? Probably a dumb question but I don't see the method in the classes anymore.
Thanks for your help!
I think it says in Programs and Features which version(s) you have installed.
If you install 4.5 it'll overwrite 4.0 (it's an inplace replacement) and there's no client install. wwDotnetBridge tries to locate the latest version to use typically but it's not always reliable.
You can force a particular version (V2 or V4) by specifying loading wwDotnetBridge at the beginning of your application and loading a particular version. Since there is only one .NET runtime loaded per process, it will always use that.
The easiest way to check is:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge")
? loBridge.GetDotnetVersion()
To force a specific version:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge","V4")
? loBridge.GetDotnetVersion()
If this works then you've gone past the issue that's causing your error.
+++ Rick ---
Hi Rick,
No it has never worked. Smtp without authorization or without TLS works 100%. As soon as I turn on lUseSsl it fails. I have tried everything and I did read the link you sent below. The only idea I have left is that I have several versions of .NET installed. Does it use the highest version? Highest version I have is 4.0.30319 and it might be a client-only version but how do you tell?
Check here:
http://www.west-wind.com/webconnection/docs/?page=_3rf12jtma.htm
This doesn't explain why you said this worked intermittently previously - this would fail every time if not configured properly.
+++ Rick ---
Hi Rick,
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
Yes that's a server error. Most likely you are setting or not setting the SSL flag when the server does or doesn't support it.
+++ Rick ---
Hi Rick,
After hours of work and testing and after distributing the new product, I am having problems again on two of my test PCs. Now SendMail, when using SMTP, is returning "500 Command Unrecognized" error. Is this an error from the mail server?
No you shouldn't need any extra runtimes beyond FoxPro and .NET installed.
+++ Rick ---
I agree. I decided to remove the dialer option from the product. Sorry I am not clear on question #1. For using smtp but WITH TLS, does the customer need the VS 2010 runtime DLLs?
We can close this thread, thanks Rick for all your help. Great product!
You shouldn't need anything special if you're using classic wwSmtp (ie. non-.NET). Whatever is required to run VFP is enough.
InternDial is deprecated. It's still there (in wwAPI) but it doesn't actually work although you could make that work. It's become pretty much obsolete. Who dials a phone or connection anymore for a connection???
+++ Rick ---
Thanks Rick that was super helpful. And it's a way to allow my users to detect what version of .NET, if any, they have.
TLS authentication is working OK now. I had to install .NET 4.5.2 even though wwDotnetBridge says we are using 2.0. We'll be upgrading to the latest wwClientTools product.
I have two remaining questions:
- If I am using wwSmtp only, with and without TLS, do customers need the VS 2010 runtime files installed?
- Does wwClientTools still support calling up the internet dialer? Probably a dumb question but I don't see the method in the classes anymore.
Thanks for your help!
I think it says in Programs and Features which version(s) you have installed.
If you install 4.5 it'll overwrite 4.0 (it's an inplace replacement) and there's no client install. wwDotnetBridge tries to locate the latest version to use typically but it's not always reliable.
You can force a particular version (V2 or V4) by specifying loading wwDotnetBridge at the beginning of your application and loading a particular version. Since there is only one .NET runtime loaded per process, it will always use that.
The easiest way to check is:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge")
? loBridge.GetDotnetVersion()
To force a specific version:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge","V4")
? loBridge.GetDotnetVersion()
If this works then you've gone past the issue that's causing your error.
+++ Rick ---
Hi Rick,
No it has never worked. Smtp without authorization or without TLS works 100%. As soon as I turn on lUseSsl it fails. I have tried everything and I did read the link you sent below. The only idea I have left is that I have several versions of .NET installed. Does it use the highest version? Highest version I have is 4.0.30319 and it might be a client-only version but how do you tell?
Check here:
http://www.west-wind.com/webconnection/docs/?page=_3rf12jtma.htm
This doesn't explain why you said this worked intermittently previously - this would fail every time if not configured properly.
+++ Rick ---
Hi Rick,
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
West Wind Technologies
Making waves on the Web
from Maui
Hi Rick,
After hours of work and testing and after distributing the new product, I am having problems again on two of my test PCs. Now SendMail, when using SMTP, is returning "500 Command Unrecognized" error. Is this an error from the mail server?
No you shouldn't need any extra runtimes beyond FoxPro and .NET installed.
+++ Rick ---
I agree. I decided to remove the dialer option from the product. Sorry I am not clear on question #1. For using smtp but WITH TLS, does the customer need the VS 2010 runtime DLLs?
We can close this thread, thanks Rick for all your help. Great product!
You shouldn't need anything special if you're using classic wwSmtp (ie. non-.NET). Whatever is required to run VFP is enough.
InternDial is deprecated. It's still there (in wwAPI) but it doesn't actually work although you could make that work. It's become pretty much obsolete. Who dials a phone or connection anymore for a connection???
+++ Rick ---
Thanks Rick that was super helpful. And it's a way to allow my users to detect what version of .NET, if any, they have.
TLS authentication is working OK now. I had to install .NET 4.5.2 even though wwDotnetBridge says we are using 2.0. We'll be upgrading to the latest wwClientTools product.
I have two remaining questions:
- If I am using wwSmtp only, with and without TLS, do customers need the VS 2010 runtime files installed?
- Does wwClientTools still support calling up the internet dialer? Probably a dumb question but I don't see the method in the classes anymore.
Thanks for your help!
I think it says in Programs and Features which version(s) you have installed.
If you install 4.5 it'll overwrite 4.0 (it's an inplace replacement) and there's no client install. wwDotnetBridge tries to locate the latest version to use typically but it's not always reliable.
You can force a particular version (V2 or V4) by specifying loading wwDotnetBridge at the beginning of your application and loading a particular version. Since there is only one .NET runtime loaded per process, it will always use that.
The easiest way to check is:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge")
? loBridge.GetDotnetVersion()
To force a specific version:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge","V4")
? loBridge.GetDotnetVersion()
If this works then you've gone past the issue that's causing your error.
+++ Rick ---
Hi Rick,
No it has never worked. Smtp without authorization or without TLS works 100%. As soon as I turn on lUseSsl it fails. I have tried everything and I did read the link you sent below. The only idea I have left is that I have several versions of .NET installed. Does it use the highest version? Highest version I have is 4.0.30319 and it might be a client-only version but how do you tell?
Check here:
http://www.west-wind.com/webconnection/docs/?page=_3rf12jtma.htm
This doesn't explain why you said this worked intermittently previously - this would fail every time if not configured properly.
+++ Rick ---
Hi Rick,
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o
Yes that's a server error. Most likely you are setting or not setting the SSL flag when the server does or doesn't support it.
+++ Rick ---
Hi Rick,
After hours of work and testing and after distributing the new product, I am having problems again on two of my test PCs. Now SendMail, when using SMTP, is returning "500 Command Unrecognized" error. Is this an error from the mail server?
No you shouldn't need any extra runtimes beyond FoxPro and .NET installed.
+++ Rick ---
I agree. I decided to remove the dialer option from the product. Sorry I am not clear on question #1. For using smtp but WITH TLS, does the customer need the VS 2010 runtime DLLs?
We can close this thread, thanks Rick for all your help. Great product!
You shouldn't need anything special if you're using classic wwSmtp (ie. non-.NET). Whatever is required to run VFP is enough.
InternDial is deprecated. It's still there (in wwAPI) but it doesn't actually work although you could make that work. It's become pretty much obsolete. Who dials a phone or connection anymore for a connection???
+++ Rick ---
Thanks Rick that was super helpful. And it's a way to allow my users to detect what version of .NET, if any, they have.
TLS authentication is working OK now. I had to install .NET 4.5.2 even though wwDotnetBridge says we are using 2.0. We'll be upgrading to the latest wwClientTools product.
I have two remaining questions:
- If I am using wwSmtp only, with and without TLS, do customers need the VS 2010 runtime files installed?
- Does wwClientTools still support calling up the internet dialer? Probably a dumb question but I don't see the method in the classes anymore.
Thanks for your help!
I think it says in Programs and Features which version(s) you have installed.
If you install 4.5 it'll overwrite 4.0 (it's an inplace replacement) and there's no client install. wwDotnetBridge tries to locate the latest version to use typically but it's not always reliable.
You can force a particular version (V2 or V4) by specifying loading wwDotnetBridge at the beginning of your application and loading a particular version. Since there is only one .NET runtime loaded per process, it will always use that.
The easiest way to check is:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge")
? loBridge.GetDotnetVersion()
To force a specific version:
do wwDotnetBridge
loBridge = CREATEOBJECT("wwDotnetBridge","V4")
? loBridge.GetDotnetVersion()
If this works then you've gone past the issue that's causing your error.
+++ Rick ---
Hi Rick,
No it has never worked. Smtp without authorization or without TLS works 100%. As soon as I turn on lUseSsl it fails. I have tried everything and I did read the link you sent below. The only idea I have left is that I have several versions of .NET installed. Does it use the highest version? Highest version I have is 4.0.30319 and it might be a client-only version but how do you tell?
Check here:
http://www.west-wind.com/webconnection/docs/?page=_3rf12jtma.htm
This doesn't explain why you said this worked intermittently previously - this would fail every time if not configured properly.
+++ Rick ---
Hi Rick,
OK I turned off error trapping and now I do catch an error. Message is:
"Unable to load wwDotNetBridge: Unable to load Clr Instance. 0x80131515"
It is thrown in wwdotnetbridge.init. The wwDotNetBridge.dll is in my path. the lcVersion passed to the init method is "V4.0.30319". This is a little over my head, not sure what I am doing wrong.
Not sure. Without an error message there's no way to know what's happening. Any SMTP failure should produce an error message, so I'm not sure why that's not happening.
+++ Rick ---
SMTP works fine for me. But as soon as I turn on lUseSsl = .T. the SendMail fails immediately. I know that I have:
- Do have .NET 4.5 installed on my development PC
- Do have the correct ISP username and password
- lUseSsl = .T.
- Do have the correct port (587)
- My ISP requires that "remote login" is enabled on my account and it is. It works because my Android phone can use SSL/TLS to get and send emails
Here is the code:
SET EXACT OFF
o=CREATEOBJECT("wwSmtp", 0)
o.nMailMode = 0 && .NET mode, requires .NET be installed on users PC (ChurchWatch doesn't do it)
o.lUseSsl = .T.
o.cMailServer=ALLTRIM(USERS.MAILSERVER)
o.cSenderEmail=ALLTRIM(USERS.EMAILADDR)
o.cSenderName=ALLTRIM(USERS.SENDERNAME)
o.nServerPort=USERS.ISPPort
o.cUsername = ALLTRIM(USERS.ISPLogin)
o.cPassword = ALLTRIM(USERS.ISPPwd)o.cRecipient=ALLTRIM(cTo)
o.cCCList=ALLTRIM(cCC)
o.cBCCList=ALLTRIM(cBCC)
o.cSubject=ALLTRIM(cSubject)
o.cMessage=cMessage
o.cAttachment=ALLTRIM(cAttach)llResult = o.SendMail()
>> at this point llResult is .F. and o.cErrorMsg is ""
* Release the Object
RELEASE o