Aquí teneis un pequeño ejemplo de como enviar correos con Gmail:
import java.security.Security;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class GmailWrapper {
private static final String MAIL_SERVER = "smtp.gmail.com";
private static final String MAIL_PORT = "465";
private static final String MAIL_FROM = "from@gmail.com";
private static final String MAIL_USER = "user@gmail.com";
private static final String MAIL_PASSWORD = "password";
public void sendRememberMail(String username, String password, String to) {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
String msgBody = "The message you want to sent";
String msgSubject = "Mail subject";
Properties properties = new Properties();
properties.put("mail.smtp.user", MAIL_FROM);
properties.put("mail.smtp.password", MAIL_PASSWORD);
properties.put("mail.smtp.host",MAIL_SERVER);
properties.put("mail.smtp.port", MAIL_PORT);
properties.put("mail.smtp.starttls.enable","true");
properties.put( "mail.smtp.auth", "true");
properties.put("mail.smtp.debug", "false");
properties.put("mail.from",MAIL_FROM);
properties.put("mail.smtp.socketFactory.port", MAIL_PORT);
properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
properties.put("mail.smtp.socketFactory.fallback", "false");
try {
Authenticator auth = new MyAuthenthicator();
Session session = Session.getInstance(properties, auth);
session.setDebug(false);
Message message = new MimeMessage(session);
InternetAddress[] address = {new InternetAddress(to)};
message.setRecipients(Message.RecipientType.TO, address);
message.setFrom(new InternetAddress(MAIL_FROM));
message.setSubject(msgSubject);
message.setText(msgBody);
BodyPart messageBodyPart = new MimeBodyPart();
String messageText = msgBody;
messageBodyPart.setText(messageText);
Multipart mPart = new MimeMultipart();
BodyPart body = new MimeBodyPart();
body.setContent(msgBody,"text/plain");
mPart.addBodyPart(body);
message.setContent(mPart);
message.saveChanges();
Transport transport = session.getTransport(address[0]);
transport.connect();
transport.sendMessage(message,address);
} catch (Exception e) {
// Catch exception
}
}
public class MyAuthenthicator extends Authenticator {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(MAIL_USER,MAIL_PASSWORD);
}
}
}
miércoles, 14 de noviembre de 2007
lunes, 15 de octubre de 2007
Strings de conexión
Una página curiosa sobre conexiones a diferentes tipos de bases de datos:
http://www.connectionstrings.com/
http://www.connectionstrings.com/
jueves, 11 de octubre de 2007
Envio de emails via VBS
Este script envia un email con un fichero adjunto utilizando un servidor SMTP externo via VB Script. Para probarlo, solamente tenemos que copiar el codigo en un fichero con extensión .vbs y desde una consola de dos, ejecutarlo.
objMessage.Subject = "Subject email"
objMessage.From = """Alis email"" "
objMessage.To = "to@mycompany.com"
objMessage.Cc = "cc@mycompany.com"
objMessage.Bcc = "bcc@mycompany.com"
objMessage.TextBody = "mail body"
objMessage.Addattachment "c:\test.txt"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mycompany.com"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objMessage.Configuration.Fields.update
objMessage.Send
objMessage.Subject = "Subject email"
objMessage.From = """Alis email"" "
objMessage.To = "to@mycompany.com"
objMessage.Cc = "cc@mycompany.com"
objMessage.Bcc = "bcc@mycompany.com"
objMessage.TextBody = "mail body"
objMessage.Addattachment "c:\test.txt"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mycompany.com"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = "username"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objMessage.Configuration.Fields.update
objMessage.Send
viernes, 28 de septiembre de 2007
Conexión a un cubo OLAP desde Excel
Excel permite conectarse directamente a cubos OLAP mediante el motor de Analysis Services de SQL Server 2005.
En la pestaña de datos, tenemos la opción para obeterner datos de una fuente externa. Seleccionamos la opción Analysis Services.

Especificamos la dirección ip o nombre de la máquina:

En caso de utilizar autentificación con nombre de usuario y contraseña, en un paso futuro deberemos marcar la opción de Guardar contraseña en fichero.
De las diferentes bases de datos implemendas en el servidor, elegimos con la que queremos trabajar:

En el último paso, si hemos elegido autentificación con nombre de usuario y contraseña, deberemos marcar el chack de Guardar en fichero.

Una vez conectados al cubo, aparecerá una tabla dinámica con la que podremos jugar, arrastrando las dimensiones y hechos que queramos.
En la pestaña de datos, tenemos la opción para obeterner datos de una fuente externa. Seleccionamos la opción Analysis Services.

Especificamos la dirección ip o nombre de la máquina:

En caso de utilizar autentificación con nombre de usuario y contraseña, en un paso futuro deberemos marcar la opción de Guardar contraseña en fichero.
De las diferentes bases de datos implemendas en el servidor, elegimos con la que queremos trabajar:

En el último paso, si hemos elegido autentificación con nombre de usuario y contraseña, deberemos marcar el chack de Guardar en fichero.

Una vez conectados al cubo, aparecerá una tabla dinámica con la que podremos jugar, arrastrando las dimensiones y hechos que queramos.
martes, 25 de septiembre de 2007
Como eliminar el log transaccional de una base de datos
Muchas veces encontramos que una base de datos ocupa mucho espacio en disco sin tener un gran volumen de datos en ella. En estos casos, es habitual encontrar un fichero de log grande debido a las transacciones que se han llevado a cabo.
Para vaciar el fichero de log podemos ejecutar el siguiente código SQL:
BACKUP LOG MyDatabase WITH TRUNCATE_ONLY
DBCC SHRINKDATABASE (MyDatabase, TRUNCATEONLY )
Para vaciar el fichero de log podemos ejecutar el siguiente código SQL:
BACKUP LOG MyDatabase WITH TRUNCATE_ONLY
DBCC SHRINKDATABASE (MyDatabase, TRUNCATEONLY )
domingo, 23 de septiembre de 2007
Comandos FTP en MS-DOS
Podemos realizar un conjunto de comandos FTP en MS-DOS mediante un fichero adicional. Dicho fichero contendrá el acceso al servidor y los comandos que queramos realizar.
Como ejemplo:
En este ejemplo, nos conectamos al servidor, accedemos a la carpeta local c:\temp y descargamos el fichero myfile.
Para ejecutar la aplicación ftp con el fichero de comando, entramos la siguiente línea ftp -v -i -s:commands.txt.
Como ejemplo:
OPEN xxx.xxx.xxx.xxx
username
password
LCD C:\temp
GET myfile
QUIT
En este ejemplo, nos conectamos al servidor, accedemos a la carpeta local c:\temp y descargamos el fichero myfile.
Para ejecutar la aplicación ftp con el fichero de comando, entramos la siguiente línea ftp -v -i -s:commands.txt.
Report Builder con autentificación básica
Bajo la configuración de autentificación básica en Reporting Services, podemos comprobar que el usuario debe verificar sus credenciales cuando intenta acceder a alguno de los dos directorios virtuales del IIS. En cambio, si accedemos a la herramienta Report Builder, podremos comprobar que el sistema nos devuelve el siguiente error:
Es muy importante remarcar que esta opción solo debe realizarse si Reporting Services están configurado bajo SSL.
Cannot Retrieve Application. Authentication Error.
Para permitir el acceso a la herramienta, deberemos dar acceso anónimo a la carpeta/reportserver/reportbuilder
de los directorios virtuales del IIS.Es muy importante remarcar que esta opción solo debe realizarse si Reporting Services están configurado bajo SSL.
Etiquetas:
autentificación,
report builder
miércoles, 19 de septiembre de 2007
Configuración de Report Server para la entrega de informes vía email
Es normal encontrarse empresas con servidores de correo externos a la misma sede. Para poder configurar el envío de informes desde Report Server tendremos que configurar el servidor SMTP virtual del IIS.
El primer paso es verificar que el servidor virtual de SMTP está instalado. Para ello, entramos en la administración de Mi Pc, Servicios y aplicaciones, Servicios de Internet Information Server. Si el servidor SMTP no está dentro de los servicios de IIS deberos instalarlo accediendo al Panel de Control, Agregar o quitar programas, Componentes de Windows, Servicios de Internet Information Server y seleccionamos Servicio SMTP.
Una vez tenemos instalado el servidor de SMTP, procederemos a la configuración de Report Server. Tenemos que configurar la sección Report Server Email del fichero rsreportserver.config. Los parámetros modificados aparecen en negrita:
<RSEmailDPConfiguration>
<SMTPServer></SMTPServer>
<SMTPServerPort></SMTPServerPort>
<SMTPAccountName></SMTPAccountName>
<SMTPConnectionTimeout></SMTPConnectionTimeout>
<SMTPServerPickupDirectory>C:\Inetpub\mailroot\Pickup\</SMTPServerPickupDirectory>
<SMTPUseSSL></SMTPUseSSL>
<SendUsing>1</SendUsing>
<SMTPAuthenticate></SMTPAuthenticate>
<From>company@mycompany.com</From>
<EmbeddedRenderFormats>
<RenderingExtension>MHTML</RenderingExtension>
</EmbeddedRenderFormats>
<PrivilegedUserRenderFormats></PrivilegedUserRenderFormats>
<ExcludedRenderFormats>
<RenderingExtension>HTMLOWC</RenderingExtension>
<RenderingExtension>NULL</RenderingExtension>
<RenderingExtension>RGDI</RenderingExtension>
</ExcludedRenderFormats>
<SendEmailToUserAlias>True</SendEmailToUserAlias>
<DefaultHostName></DefaultHostName>
<PermittedHosts></PermittedHosts>
</RSEmailDPConfiguration>
Normalmente el servidor SMTP virtual del IIS trabaja con la carpeta C:\Inetpub\mailroot. La carpeta pickup se utiliza para dejar los correos que nuestro servidor SMTP tiene que reenviar al SMTP externo a la empresa. El tag From se utiliza para marcar el origen del envío.
En este punto, podemos probar de crear una nueva subscripción en un informe y verificar que Report Server no informa de ningún error. Si verificamos la carpeta pickup, podremos ver un archivo con extensión eml. Este archivo es el correo que nuestro servidor de STMP debería reenviar al SMTP externo.
Es hora de configurar el servidor SMTP para que realice relay sobre el dominio mycompany.com. Entramos en la administración de Mi Pc, Servicios y aplicaciones, Servicios de Internet Information Server, Servidor Virtual SMTP, Dominios. Creamos un nuevo dominio remoto con el nombre mycompany.com. Editamos las propiedades del dominio según la imagen:

En la entrada “Reenviar todo el correo al host inteligente” debemos especificar el nombre de la máquina SMTP externa, responsable del envío final de los informes. Si pulsamos el botón de Seguridad saliente podremos configurar la autenticación requerida por el host remoto.
Ahora solo hace falta volver a probar la subscripción y esperar que todo funcione correctamente. Si el relay está bien configurado, los correos recibidos en la carpeta pickup deberían desaparecer una vez el SMTP local los reenvíe al SMTP remoto.
El primer paso es verificar que el servidor virtual de SMTP está instalado. Para ello, entramos en la administración de Mi Pc, Servicios y aplicaciones, Servicios de Internet Information Server. Si el servidor SMTP no está dentro de los servicios de IIS deberos instalarlo accediendo al Panel de Control, Agregar o quitar programas, Componentes de Windows, Servicios de Internet Information Server y seleccionamos Servicio SMTP.
Una vez tenemos instalado el servidor de SMTP, procederemos a la configuración de Report Server. Tenemos que configurar la sección Report Server Email del fichero rsreportserver.config. Los parámetros modificados aparecen en negrita:
<RSEmailDPConfiguration>
<SMTPServer></SMTPServer>
<SMTPServerPort></SMTPServerPort>
<SMTPAccountName></SMTPAccountName>
<SMTPConnectionTimeout></SMTPConnectionTimeout>
<SMTPServerPickupDirectory>C:\Inetpub\mailroot\Pickup\</SMTPServerPickupDirectory>
<SMTPUseSSL></SMTPUseSSL>
<SendUsing>1</SendUsing>
<SMTPAuthenticate></SMTPAuthenticate>
<From>company@mycompany.com</From>
<EmbeddedRenderFormats>
<RenderingExtension>MHTML</RenderingExtension>
</EmbeddedRenderFormats>
<PrivilegedUserRenderFormats></PrivilegedUserRenderFormats>
<ExcludedRenderFormats>
<RenderingExtension>HTMLOWC</RenderingExtension>
<RenderingExtension>NULL</RenderingExtension>
<RenderingExtension>RGDI</RenderingExtension>
</ExcludedRenderFormats>
<SendEmailToUserAlias>True</SendEmailToUserAlias>
<DefaultHostName></DefaultHostName>
<PermittedHosts></PermittedHosts>
</RSEmailDPConfiguration>
Normalmente el servidor SMTP virtual del IIS trabaja con la carpeta C:\Inetpub\mailroot. La carpeta pickup se utiliza para dejar los correos que nuestro servidor SMTP tiene que reenviar al SMTP externo a la empresa. El tag From se utiliza para marcar el origen del envío.
En este punto, podemos probar de crear una nueva subscripción en un informe y verificar que Report Server no informa de ningún error. Si verificamos la carpeta pickup, podremos ver un archivo con extensión eml. Este archivo es el correo que nuestro servidor de STMP debería reenviar al SMTP externo.
Es hora de configurar el servidor SMTP para que realice relay sobre el dominio mycompany.com. Entramos en la administración de Mi Pc, Servicios y aplicaciones, Servicios de Internet Information Server, Servidor Virtual SMTP, Dominios. Creamos un nuevo dominio remoto con el nombre mycompany.com. Editamos las propiedades del dominio según la imagen:

En la entrada “Reenviar todo el correo al host inteligente” debemos especificar el nombre de la máquina SMTP externa, responsable del envío final de los informes. Si pulsamos el botón de Seguridad saliente podremos configurar la autenticación requerida por el host remoto.
Ahora solo hace falta volver a probar la subscripción y esperar que todo funcione correctamente. Si el relay está bien configurado, los correos recibidos en la carpeta pickup deberían desaparecer una vez el SMTP local los reenvíe al SMTP remoto.
Etiquetas:
email,
report server,
sql server 2005
Suscribirse a:
Entradas (Atom)