Lo que vos me decís es correcto, lo que yo digo es supongamos que yo tengo la dll en .NET:
Código C#:
Ver originalusing System.Linq;
using System.Text;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
using System.Runtime.InteropServices;
[assembly: ClassInterface(ClassInterfaceType.AutoDual)]
namespace correossl
{
[ProgId("correossl.correoSsl")]
public class CorreoSsl
{
public interface ICorreoSSL {
string EnviarCorreoGmail(string destinatario, string remitente, string nombre, string asunto, string cuerpo, string attach, string password, int puerto);
}
public string EnviarCorreoGmail(string destinatario, string remitente, string nombre, string asunto, string cuerpo, string attach, string password, int puerto)
{
try
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add(destinatario);
msg.From = new MailAddress(remitente, nombre, System.Text.Encoding.UTF8);
msg.Subject = asunto;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = cuerpo;
msg.Attachments.Add(new Attachment(attach));
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = false;
SmtpClient client = new SmtpClient();
client.Credentials = new System.Net.NetworkCredential(remitente, password);
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
client.Send(msg);
return "Enviado";
}
catch (System.Net.Mail.SmtpException ex)
{
return ex.Message;
}
}
}
}
Mi problema es que cuando la llamo de visual basic 6, de esta forma:
Código VB:
Ver originalDim mailok As String
Dim MailCS As correossl.Correo
Set MailCS = New correossl.Correo
mailok = MailCS.EnviarCorreoGmail(SSLTo, SSLFrom, "ejemplo", SSLSubject, SSLBody, "", SSLPassword, SSLPort)
Y el error que me esta dando es: "ActiveX component can't create object" en la linea donde hago el SET...
Gracias. Espero que se entienda.
Saludos.