CFMAIL sending email twice!

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>
makilaAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

jyokumCommented:
<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
makilaAuthor Commented:
I should also add this tidbit. I replaced #qryOverdue.Email# with my own email and still received two emails for each overdue item.
0
jyokumCommented:
are you sure your query is only returning 1 record? try dumping the recordset to see what's being returned

<cfdump var="#qryOverdue#">
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

makilaAuthor Commented:
I will try that when I get back to work on Monday :)
0
Tacobell777Commented:
You probably need to group your query in the mail tag, look at the cfmail attribute GROUP
0
makilaAuthor Commented:
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
makilaAuthor Commented:
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
Tacobell777Commented:
is the mail tag wrapped in another custom tag? If so, does this tag end with \> ?
0
makilaAuthor Commented:
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
jyokumCommented:
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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Servers

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.