I have tested it at home and I get the same error as before.
Appreciate all help on geting maling runing in it ! Setup: 1) Install geronimo 1.1.1 (if you dont allreddy have it)2) Install the Quartz Scheduler (0.2) and Quartz Job Deployer (0.2) plugins available from console/plugins.
3) Pack up the tar.gz file and do some initial edits: QuartzMailTest.java -- fix mail addresses etc. mail-server.xml -- fix smtp address. build.xml -- set geronimo home.If you are using eclipse you can probably just import the proj after unpacking it. 4) Build with: ant dist -- and you will have a deploable test app in the "dist" dir.
Deploy the apps and check geronimo.log It will put out somting from the job every 30 secs.
Thanks Peter Rick McGuire wrote:
Peter Petersson wrote:Okey here comes the plans and a code snippet illustrating what im trying to do when i get the javax.mail.NoSuchProviderException: Unable to locate provider for protocol: smtpThe NoSuchProviderException usually occurs because the javamail-transport jar file isn't in the classpath, but you have the correct dependency there, so this should be working. I'm going to have to investigate this a little more. Any chance you can send me your sample app (with any special usage/setup instructions) so I can try to sort this out?at javax.mail.Session.getProvider(Session.java:227) at javax.mail.Session.getTransport(Session.java:336) Anny suggestions ?RickThe execute method below hass the intresting mailing part (its a bit messy as I have tryed diffrent approachesCode snippet: public class UsedAllotmentSendJob implements Job {private final static Log logger = LogFactory.getLog(UsedAllotmentSendJob.class);private DataSource dataSource; private Session mailSession; public void setDatabase(DataSource ds) { dataSource = ds; } public void setMailSession(Session s) { mailSession = s;} public void execute(JobExecutionContext jobcontext) throws JobExecutionException {//trying with added autentication String smtphost="thednsaddress"; String username="thelogginname"; String password="thelogginpassword"; Message message = new MimeMessage(mailSession); try{ InternetAddress from = new InternetAddress("the_sender_addr"); InternetAddress to = new InternetAddress("the_resiver_addr"); String mailer = "smtpsend"; message.setHeader("X-Mailer", mailer); message.setSentDate(new Date()); message.setFrom(from); message.addRecipient(Message.RecipientType.TO, to); message.setSubject("The subject"); message.setText("The message"); Transport tr = mailSession.getTransport("smtp"); tr.connect(smtphost, username, password);//tr.connect(); //no extra params just the gbean settings (host,port)message.saveChanges(); // don't forget this tr.sendMessage(message, message.getAllRecipients()); tr.close(); //replaced with the settup above //mailSession.getTransport("smtp"); //Transport.send(message); }catch(AddressException aex){logger.error("execute got a AddressException "+aex.getMessage());}catch(MessagingException mex){logger.error("execute got a MessagingException "+mex.getMessage(),mex);} } } Geronimo Quartz Plan <?xml version="1.0" encoding="UTF-8"?> <jobs xmlns="http://geronimo.apache.org/xml/ns/plugins/quartz-0.2"><environment xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1"><moduleId> <groupId>test</groupId> <artifactId>ReportSendJobs</artifactId> </moduleId> <dependencies> <dependency> <groupId>test</groupId> <artifactId>javamail-server</artifactId> </dependency> <dependency> <groupId>console.dbpool</groupId> <artifactId>MySqlDB_report_sender</artifactId> </dependency> </dependencies> </environment> <job> <job-name>Job name</job-name> <job-class>classpath to jobb class</job-class> <cron-expression>0/30 * * * * ?</cron-expression> <resource-ref> <property>Database</property> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> <pattern> <name>MySqlDB_report_sender</name> </pattern> </resource-ref> <resource-ref> <property>MailSession</property> <res-type>javax.mail.Session</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> <pattern> <name>mail/MailSession</name> </pattern> </resource-ref> </job> </jobs>The "mail-server" plan (slightly moddyfied version of what I got from Rick):<?xml version="1.0" encoding="UTF-8"?> <module xmlns="http://geronimo.apache.org/xml/ns/deployment-1.1"><dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1"><dep:moduleId> <dep:groupId>test</dep:groupId> <dep:artifactId>javamail-server</dep:artifactId> </dep:moduleId><dep:dependencies><dep:dependency> <dep:groupId>geronimo</dep:groupId> <dep:artifactId>geronimo-mail</dep:artifactId> <dep:version>1.1.1</dep:version> <dep:type>jar</dep:type> <dep:import>classes</dep:import> </dep:dependency> <dep:dependency> <dep:groupId>geronimo</dep:groupId> <dep:artifactId>geronimo-javamail-transport</dep:artifactId> <dep:version>1.1.1</dep:version> <dep:type>jar</dep:type> <dep:import>classes</dep:import> </dep:dependency> <dep:dependency> <dep:groupId>geronimo</dep:groupId> <dep:artifactId>rmi-naming</dep:artifactId> <dep:type>car</dep:type> </dep:dependency> </dep:dependencies> <dep:hidden-classes/> <dep:non-overridable-classes/> </dep:environment><gbean name="SMTPTransport" class="org.apache.geronimo.mail.SMTPTransportGBean"><attribute name="host">removed dns name</attribute> <attribute name="port">25</attribute> </gbean><gbean name="mail/MailSession" class="org.apache.geronimo.mail.MailGBean"><attribute name="transportProtocol">smtp</attribute> <attribute name="debug">true</attribute> <reference name="Protocols"> <name>SMTPTransport</name> </reference> </gbean> </module> Peter Petersson skrev:It is a remote SMTP server (in our lan) and autentication shuld not be needed from inside our LAN (I have sucsessfully accessed the SMTP server from within a vanila tomcat5 web app without autentication).Could a autentication faliur result in a NoSuchProviderException ?I have tryed setting the Transport attributes (smtphost, username, password) from within the codeTransport tr = mailSession.getTransport("smtp"); tr.connect(smtphost, username, password); and also tryed a GBean via the attributes (host,port).The Gbean is from a sligtly moddified version of the "example mail session" that Rick posted (he did a farly good shoot from the hip ;)).I but regardles of a lott of testing with different setups i still getjavax.mail.NoSuchProviderException: Unable to locate provider for protocol: smtpat javax.mail.Session.getProvider(Session.java:227) at javax.mail.Session.getTransport(Session.java:336) Im testing this on a fresh install of Geronimo 1.1.1 Anny suggestions ? Cheers Peter Aaron Mulder skrev:Does your localhost have a mail server running? Or are you trying to send through a remote SMTP server? Is the mail server open or do you need to authenticate to it? Thanks, Aaron On 9/29/06, Peter Petersson <[EMAIL PROTECTED]> wrote:Hi all!I quite new to Geronimo (using 1.1.1) and have some problems geting mailto work from a geronimo-quartz job. As I understand it I need to set up a gbean or do some other configuration for javamail to work (?). The example i have folowed for the Quartz Scheduler Plugin over athttp://gplugins.sourceforge.net/ have a nice setup including mailing (in the "Deployable Jobs Example" section) but it dose not go into detailson howto set up mailing (its not the scope of the example).What do I need to do to get it to work? as it is now i get this exceptionMessagingException Unable to locate provider for protocol: smtp Anny good pointer out there to get mailing working in Geronimo ? Cheers Peter
mailtest.tar.gz
Description: GNU Zip compressed data
