Solved

CFMAIL sending email twice!

Posted on 2003-11-28
13
357 Views
Last Modified: 2013-12-24
Hi,

I created an online library where people can check out books etc. I have a section where the library owner can send emails to the people whose books are overdue. However, whenever that process is run, two emails are sent to each person. I have no clue what could cause this.

I have a cfquery that grabs the information for the people who are overdue. Then I call the query within my cfmail. Here's the code:

<cfquery name="qryOverdue" datasource="library">
SELECT Loans.LoanIndex, Loans.Title, Loans.Name, Loans.Email, Loans.Date_Out, Loans.Date_Due
FROM Loans
WHERE ((Now()>[Loans]![Date_Due]))
</cfquery>

<cfmail
to="#qryOverdue.Email#"
from="library_mailbox@company.com"
subject="overdue learning library item"
query="qryOverdue"
server="company_exchange_server.com"
port="25"
type="html">
<cfmailparam name="X-Priority" value="1">
Greetings,<p>
The item you checked out on #DateFormat(qryOverdue.Date_Out, 'mm/dd/yyyy')#,
"#qryOverdue.Title#", was due back #DateFormat(qryOverdue.Date_Due, 'mm/dd/yyyy')#.<p>
Please return this item to the Learning Library ASAP.<p>
Thank you!
</cfmail>
0
Comment
Question by:makila
  • 5
  • 3
  • 2
13 Comments
 
LVL 12

Expert Comment

by:jyokum
ID: 9840435
<cfquery name="qryOverdue" datasource="library">
SELECT Loans.LoanIndex, Loans.Title, Loans.Name, Loans.Email, Loans.Date_Out, Loans.Date_Due
FROM Loans
WHERE ((Now()>[Loans]![Date_Due]))
</cfquery>

<cfoutput query="qryOverdue">
    sending mail to #qryOverdue.Email#<br> <!--- this is just for debugging --->
    <cfmail
        to="#qryOverdue.Email#"
        from="library_mailbox@company.com"
        subject="overdue learning library item"
        server="company_exchange_server.com"
        port="25"
        type="html">
        <cfmailparam name="X-Priority" value="1">
Greetings,<p>
The item you checked out on #DateFormat(qryOverdue.Date_Out, 'mm/dd/yyyy')#,
"#qryOverdue.Title#", was due back #DateFormat(qryOverdue.Date_Due, 'mm/dd/yyyy')#.<p>
Please return this item to the Learning Library ASAP.<p>
Thank you!
    </cfmail>
</cfoutput>
0
 

Author Comment

by:makila
ID: 9840458
I should also add this tidbit. I replaced #qryOverdue.Email# with my own email and still received two emails for each overdue item.
0
 
LVL 12

Expert Comment

by:jyokum
ID: 9840675
are you sure your query is only returning 1 record? try dumping the recordset to see what's being returned

<cfdump var="#qryOverdue#">
0
Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

 

Author Comment

by:makila
ID: 9840906
I will try that when I get back to work on Monday :)
0
 
LVL 17

Expert Comment

by:Tacobell777
ID: 9841497
You probably need to group your query in the mail tag, look at the cfmail attribute GROUP
0
 

Author Comment

by:makila
ID: 9851963
The query is returning 10 unique records now (books have been returned!) and sending 20 emails. I upgraded to Coldfusion MX 6.1 in hopes that maybe it was a server bug but no such luck. I checked the mailsent.log and it shows 20 emails being sent.

I Googled to see if anyone else has had the same problems and I found a couple others but they never found resolutions.
0
 

Author Comment

by:makila
ID: 9852100
Previous message is referring to the results I got from dumping the recordset, btw. I also tried grouping the query in the mail tag by "LoanIndex" but I still got 20 emails. Ack.
0
 
LVL 17

Expert Comment

by:Tacobell777
ID: 9852589
is the mail tag wrapped in another custom tag? If so, does this tag end with \> ?
0
 

Author Comment

by:makila
ID: 9852702
I kind of have it figured out now. Somehow, the way I linked to the page with cfmail made it run twice.

This simple link works and it only emails once:

Click <a href="library_overdue_II.cfm">here</a> to send an email reminder to all overdue loanees.

This link pops up a small window and after the cfmail sends, the windows says "Reminders have been sent." This sends the emails twice:

Click <a href="library_overdue_II.cfm" target="send_reminders" onClick="window.open('library_overdue_II.cfm','send_reminders','width=500,height=325,top=150,left=200,toolbar=0,location=0,directories=0,status=0,menuBar=0,scrollBars=0,resizable=1')" class="no_under">here</a> to send an email reminder to all overdue loanees.
0
 
LVL 12

Accepted Solution

by:
jyokum earned 100 total points
ID: 9855838
change it to

Click <a href="#" target="send_reminders" onClick="window.open('library_overdue_II.cfm','send_reminders','width=500,height=325,top=150,left=200,toolbar=0,location=0,directories=0,status=0,menuBar=0,scrollBars=0,resizable=1')" class="no_under">here</a> to send an email reminder to all overdue loanees.
0

Featured Post

Simple, centralized multimedia control

Watch and learn to see how ATEN provided an easy and effective way for three jointly-owned pubs to control the 60 televisions located across their three venues utilizing the ATEN Control System, Modular Matrix Switch and HDBaseT extenders.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A web service (http://en.wikipedia.org/wiki/Web_service) is a software related technology that facilitates machine-to-machine interaction over a network. This article helps beginners in creating and consuming a web service using the ColdFusion Ma…
Lease-to-own eliminates the expenditure of hardware replacement and allows you to pay off the server over time. Usually, this is much cheaper than leasing servers. Think of lease-to-own as credit without interest.
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question