open new Outlook from website, too long mailTo Lin

2019-02-22 00:08发布

问题:

I'm trying to open a *.eml file with Microsoft Outlook 2010 and got problems with the bcc field.

Here is my eml file:

To: example@domain.com
Subject: Mail Subject
cc: cc@domain.com
bcc: bcc@domain.com
Content-Type: text/plain
MIME-Version: 1.0
X-Unsent: 1

Mail content

When I open this eml file with Outlook all entries work fine, except bcc. How can i bring the bcc field to work?

Edit

I basicly want the same behavior of a mailto link on a webpage. The user should click on a link and the default mailprogram (which is Outlook in the office where the software is used) should open. mailto links work fine until the link is not longer than about 2000 characters. In my case, the informations that I need to pass to Outlook are much longer than 2000 characters, so I tried to generate an *.eml file which doesn't work as expected.

So what I need:

  • a link similar to a mailto link
  • must work with more than 2000 characters
  • must work in Google Chrome & Outlook 2010

What I got:

  • PHP
  • JavaScript with jQuery

回答1:

For your edit, you can use forms in this way:

<form name="mailform" action="mailto:youremail@domain.com">
    <input type="hidden" name="bcc" value="youremailBCC@domain.com">
    <input type="hidden" name="Subject" value="Email subject">
    <input type="hidden" name="Body" value="A Big body ">
</form>
<a href="#" onclick="document.mailform.submit()">send email</a>

I used this on an Ubuntu machine, with Thunderbird and Gmail web as default mail client and Google Chrome and Firefox as browsers and both worked. I don't know about outlook, you need to test it for outlook yourself ;) But notice, generally mailto links depends on user's machine.



回答2:

I found a solution for my given problem.

MailTo links are still too long and *.eml files won't work. But it's possible to generate a *.vbs file (Visual Basic Script) which will open up a new Outlook E-Mail send form with all the fields I need and a very long Body (tested with over 50000 characters). Here is a sample code for such an *.vbs file:

'Create an Outlook application object 
Set objoutlookApp = CreateObject("Outlook.Application") 

'Create Message 
Set objmessage = objoutlookApp.CreateItem(olMailItem) 
objmessage.TO = "mail1@domain.com;mail2@example.de"
objmessage.CC = "cc1@x.com;cc2@y.de"
objmessage.BCC = "bcc@domain.com"
objmessage.Subject = "E-Mail Subject"
objmessage.Body = "Here comes some text, followed by a newLine" & vbNewLine _
& "and here is a second Line with some special characters like the paragraph: " & chr(167) & ", a german umlaut: " & chr(228) & " or some quotes: "". Hope this will help!"
objmessage.display

set objmessage = Nothing
set objoutlookApp = Nothing

wscript.quit


回答3:

Your problem is probably outside of your eml file. I've tested your file on my OSX machine and the bcc is showing in the Mail app.

However: bcc is by default not shown in outlook so now you could have 2 situations:

  1. bcc is not shown, but might be set from your eml file, if this is not an issue: success!
  2. since bcc is not shown outlook might not set it. In that case you'd have to make it so that everyone enables bcc to be shown by default. (walk by all desktops, ask the adminstrator, ...) This might be a blocker if you are not allowed to require this change.