I'm trying to create a custom email for ClearQuest in order to:
format the message more neatly
include a hyperlink to a change request (which is based on the Defect schema) on our local intranet
The only way I know of to send an email is to add an email rule using a static form submission via a Email_Rule Stateless Record Type (which comes with the Defect schema). The only customization it allows is to select the fields to include in the email, the criteria specifying when to send the email (e.g. when the state changes), and who to send it to.
I'm assuming a script is run (either in VB or Perl) in order to aggregate the information needed for the email and perhaps another to actually send the email. I'm looking for one or both of those scripts. Does anyone know where those scripts are located on a ClearQuest server?
I've come across various references from IBM that pertain to custom emails, but none were very helpful.
http://www.ibm.com/developerworks/rational/library/4329.html (from 2003 and ClearQuest v1.1)
http://www.ibm.com/developerworks/rational/library/3931.html (from 2002, no version specified)
We're using ClearQuest v7.1.2. Does anyone know of any good references dealing with ClearQuest custom emails?
We are using Clear Quest Email Notification Package, that allows much more flexible email notifications.
Link
The package is compatible with ClearQuest 7.1.2.
You can download new version from the following location:
http://cqadmin.org/wiki/ClearQuest_Email_Notification_Package
Newer versions of ClearQuest have a new Email notification package that does what you want and is also robust to network failures and supports different email services and a high level of security. That is, the email is saved as a record and a service runs that ensures emails get sent.
The name of the package is EmailPlus and it also uses a WebApp, EmailRelay, which performs the email notification duties.
More details found here.
https://www.ibm.com/support/knowledgecenter/SSSH5A_8.0.0/com.ibm.rational.clearquest.schema.ec.doc/topics/sch_pkgs/c_emp_package.htm
Related
By default smtp server can be configed in Sitecore web.config. However is it possible to hijack the whole email sending part to use a different method instead of a smtp server? Is there some kind of pipeline?
For example, I want to use another web service to send all emails, or I want to save all of them into a database instead of actually sending them?
Also a different question would be, does content delivery instance need to send emails by default? I would assume all out-of-box email sending are from content authoring instance right?
And from my understanding, there's only workflows in Sitecore need to send emails and it can be customized by changing the email action. (Assume no Email Campaign Modules, no Webform for Markets module and etc.)
Any insight would be great help, thanks!
--------------Update---------------------29/09/2015--------------
I have got my answers, thanks everyone.
Basically I shouldn't need to working about the smtp server on CDS instances, and all email sending can be controlled by pipelines on CAS instances.
However when I checked the source code, there's only one place "Reminder" which uses the smtp server to send emails directly. So if this function is important to you, you should consider update this function.
Yes absolutely.
At runtime when you are defining the SMTPClient you can set the properties for the server by the following code
SmtpClient client=new SmtpClient("Host");
client.Credentials=new NetworkCredential("username", "password");
MailMessage mailMessage = new MailMessage();
mailMessage.from="sender#gmail.com";
mailMessage.To.Add("recipient#gmail.com");
mailMessage.body="body";
mailMessage.subject="subject";
client.Send(mailMessage);
What you can do, instead of having the values hardcoded in the code you can retrieve the values from Sitecore Items and use those, this will allow greater control for Content Editors and even use different SMTP Server in different parts of functionality.
Item emailItem = Sitecore.Context.Database.GetItem("Id of Item");
string from = emailItem["From"];
string to = emailItem["To"];
string server = emailItem["Mail server"];
string subject = emailItem["Subject"];
string message = emailItem["Message"];
There is a SendEmail pipeline apart of Sitecore's EXM aka ECM which you can override if you take the EXM route. It has two processors FillEmail and SendEmail which you can utilise or remove and add your own processor for actually sending the message.
It is possible to save the emails to a database, or rather the content, instead of sending them. This can be achieved by custom code in Sitecore or Webforms for Marketers which has Save Actions for Sending Emails or Saving to a Database and its really simple to configure.
As you said there is no need to send emails on every occasion its more about determining what you are trying to achieve and if Sending Emails, Saving to Database etc is more relevant. The great thing about Sitecore is you can create Items programmatically and store the information there, save you worrying about creating database tables, managing ConnectionStrings, setting up EntityFramework etc.
Here is a simple blog on creating Sitecore Items Programmatically.
Sitecore Workflow sending Emails is optional and can be removed by deleting the Send Email CommandAction Item from beneath the WorkflowState Item and then publish.
The easiest way to intercept all emails is to configure Sitecore to send all emails to the locally hosted SMTP server (127.0.0.1) and then grab them from there using your custom code.
There is a lot of free SMTP servers, just make sure you test them with high volume of emails before moving to production.
I am trying to implement a feature in the email client that we are developing to find the list of email addresses in a particular domain, once the end user keys in the first 3 letters in to/cc/bcc box. Since the mails will be sent only to one predefined domain (which is internal).
In general, there's no way to find all the valid email addresses in a domain. And even in cases where it is possible, there's no standard way to do it. JavaMail isn't going to help you here. If your mail server supports such a capability, you're going to need to figure out how to do it in a product-specific way.
I want to create a new software that can be controlled by email.
It will work like followup.cc or followupthen.com.
The users of these softwares can give commands to the system by using only email. For example, sending an email to 1minute#followup.cc sets the system to send a notification email after 1 minute. Or sending an email to 4weeks#followup.cc sets the system to send a notification email after 4 weeks.
I have never seen an example for implementing such an email user interface. I don't know where to start. Do you know of any good tutorial or open source code that I can take as example?
Note: I appreciate anything useful but my preferred programming languages are python or java.
Use the SubEthaSMTP library to receive mail. That gives you the SMTP envelope information: reverse-path (usually the sender's email address), recipient and message content as a stream.
Based on your question it seems that you do not need to parse the message (for example to retrieve the subject), but if do need, then parse the mail using the JavaMail library.
You can find example code in the SubEthaSMTP wiki pages. A more complex example is SubEtha Mail, a mail list manager.
I am so confused. My simple requirement is: i have an application which contains confirmation form i.e. nib file. It contains some textFields like name, age, email etc. I simply want when somebody click on submit button application send background and automatic email to email defined in textField. that email contain all information like name, age etc. User need not to fil anything and it should work in background. There are so many application do the same thing. I am creating booking application.
So how can i impliment this behaviour.
Apple does not provide a way to do this - and for good reason. Sending emails from the phone automatically introduces a lot of security risks.
I am willing to bet that the apps that do this use an intermediary server to which they post the data. When the data is posted then the server handles the sending of the emails.
To do this:
Send an HTTPS POST request to your server application.
From your server application, send an email via SMTP (or APIs built on top of SMTP).
Google AppEngine provides a simple and cheap way to create such a web service, running on top of Google's cloud-computing infrastructure. The sending mail from AppEngine help document includes detailed examples of how to send mail from your server application (assuming you use the Python version of Google AppEngine).
Unfortunately, there is no official feature for this but you could download a third-party library. Refer here for a couple of suggestions.
I have an application that sends emails when a user creates/modifies a record. I would like my users to be able to reply to the email that was sent to them and have the web application receive the email, parse it and update the record automatically. I have seen this done in web apps like Basecamp. The email usually says "Reply above this line", and if you simply reply to the email, you don't have to log in to the web application in order to update your ticket/conversation.
How can I go about implementing this sort of functionaly? (I'm not looking for a particular language implementation, but rather a language agnostic solution).
There are 2 ways you can do this:
You could use a Procmail filter to pipe the incoming email to your script. This would need some 'nix knowhow to setup - but it's certainly possible to do what you described via this method.
Use a service like MailGun - they do all the hard work of setting up and configuring the mail server stuff and expose it to you via a nice programmable web API. I've been evaluating it this week to solve a similar problem like the one you are having and I can tell you: it is really cool and I highly recommend you check it out yourself.
You'll need to implement a service/daemon that polls an email inbox for new messages. To relate an incoming email to the corresponding data, you can include an id in the outgoing email's subject.
I agree you should created a system to receive the incoming email but I don't necessarily agree that polling for it is the correct solution. Take a look at a blog post I wrote on the subject here. It relates to Rails but the concepts should work in any language. That's why we wrote the CloudMailin system to provide a better way of receiving the email.
Also you can use a unique from address for each email that would prevent the user from altering the subject line being a problem. The disposable part of an email address is useful for that. reply+user123#example.com for example.