Keresés

Részletes keresés

Catti-bia Creative Commons License 2011.05.26 0 0 13

Sziasztok!

 

Olyan problémám van a 2007-es Outlookkal, hogy a beérkező levelekben megjelenő képeket körülbelül 70%-os azaz nem teljes mérettel jeleníti meg. Fogalmam nincs mitől lehet, mert emlékeim szerint semmit nem állítottam sehol. Ha valaki tudna segíteni, hogy hol tudom beállítani, hogy minden kép a teljes méretében jelenjen meg, akkor azt megköszönném! Tippek is jöhetnek, hogy például adott menüpontban nézzem meg (bejövő levelek beállításai, képek megjelenítése). Már nézegettem, de még nem találtam semmit. :/

 

Köszönöm,

Catti

Sznida Creative Commons License 2011.04.11 0 0 12

Szia,

 

Köszi, hogy válaszoltál, már el is felejtettem, hogy erre nem jött válasz. Azóta is küzdök a problémával.

Egy az egybe átmásolva, elsőre nem volt jó.

Nem is nagyon értem, uúgyhogy belemélyedek egy kicsit, hátha tudok használni belőle valamit!

 

Köszi!

 

Üdv: Sznido

Előzmény: SQLkerdes (11)
SQLkerdes Creative Commons License 2011.04.11 0 0 11

Automatic Email Account Assignment in Outlook

NOTE: THIS HAS BEEN UPDATED TO WORK WITH OUTLOOK 2007

I use Google Apps to host my family's and my private company's email but I manage my email through Outlook 2003 (because I prefer to operate off-line and I need to synchronise with my Nokia N95 phone).

Google Mail is fantastic but the issue I had to grapple with relates to how email is pulled into Outlook. Email sent to warren@[personal] and warren@[business] ends up arriving in the one inbox and is automatically assigned to the default email account in Outlook ([business] in this case).

When I reply to an email I want it to be sent through the correct account so that the sender and reply addresses match the right context. I can do that manually using the Accounts button followed by the Send button but there is another (better) way using VBA.

First download and install the excellent Redemption COM Library written by Dmitry Streblechenko. This will expose the required properties of the Outlook object model without triggering the user confirmation dialog introduced by the Outlook Security Patch. It also provides access to many useful MAPI properties not available through the standard Outlook object model.

The following code is triggered whenever new mail arrives in Outlook. In essence, I look for certain phrases that indicate that the mail has been sent to my [personal] address and then change the mail account for that message to match. Subsequently, when I reply to that message, I don't need to choose which address to send it from as that has already been selected.

It works 95% of the time with misses probably due to timing issues and possible conflicts with Outlook rules. The NewMailEx event is perhaps not guaranteed to fire (despite what the documentation says) and so sometimes the account is left set to the incorrect one but I am happy enough with the result. The techniques employed here could be used for other new mail triggered actions.

First, create a new Class module in your Outlook VBA project called clsNewMailHandler


Option Explicit

Public WithEvents oApp As Outlook.Application
Const TC_BAINSWORLD_ACCOUNT = "bainsworld"


Private Sub Class_Terminate()
Set oApp = Nothing
End Sub


Private Sub oApp_NewMailEx(ByVal EntryIDCollection As String)

' This will be called whenever we receive new mail so
' process each item to determine if we should alter
' the account - do we need to worry about conflicts with Rules?

Dim astrEntryIDs() As String
Dim objItem As Object
Dim varEntryID As Variant

astrEntryIDs = Split(EntryIDCollection, ",")
For Each varEntryID In astrEntryIDs
Set objItem = oApp.Session.GetItemFromID(varEntryID)
If objItem.Class = olMail Then
' Only call this for MailItems - can be ReadReceipts
' too which are class olReport
Call SetEmailAccount(objItem)
End If
Next varEntryID
Set objItem = Nothing
End Sub


Private Sub SetEmailAccount(ByRef oItem As MailItem)

' This code will check if the item is of interest to
' us and if so will update the account property accordingly

' Check if this was sent to a 'bainsworld' address
If CheckMessageRecipient(oItem, TC_BAINSWORLD_ACCOUNT, False) Then
' Yes it was - change the account
Call SetMessageAccount(oItem, TC_BAINSWORLD_ACCOUNT, True)
End If
End Sub


Private Sub Class_Initialize()
Set oApp = Application
End Sub

Next create a new standard Module called basMailRoutines and import this code:

Option Explicit

Private Const PR_HEADERS = &H7D001E
Private Const PR_ACCOUNT = &H80F8001E


Public Function CheckMessageRecipient( _
ByRef oItem As MailItem, _
ByVal strMatch As String, _
Optional ByVal blnExact As Boolean = False) As Boolean

' Check if the supplied string matches the recipient
' of the email. We use the internet headers and check
' the first part of the string if we can. The match
' can be made exact or not

Const TC_HEADER_START As String = "Delivered-To:"
Const TC_HEADER_END As String = "Received:"

Dim strHeader As String
Dim intStart As Integer
Dim intEnd As Integer
Dim strRecipient As String

' First get the header and see if it makes sense
strHeader = GetInternetHeaders(oItem)
intStart = InStr(1, strHeader, TC_HEADER_START, vbTextCompare)
If intStart = 0 Then intStart = 1
intEnd = InStr(intStart, strHeader, vbCrLf & TC_HEADER_END, vbTextCompare)

If intEnd = 0 Then
' The headers are unreliable so just check the whole string
strRecipient = strHeader
Else
' Found headers so grab the recipient data
strRecipient = Trim$(Mid$(strHeader, intStart + Len(TC_HEADER_START), _
intEnd - (intStart + Len(TC_HEADER_START))))
End If

' Now undertake the check
If blnExact Then
CheckMessageRecipient = (strRecipient = strMatch)
Else
CheckMessageRecipient = (InStr(1, strRecipient, strMatch, vbTextCompare) > 0)
End If
End Function


Public Sub SetMessageAccount(ByRef oItem As MailItem, _
ByVal strAccount As String, _
Optional blnSave As Boolean = True)

Dim rMailItem As Redemption.RDOMail
Dim rSession As Redemption.RDOSession
Dim rAccount As Redemption.RDOAccount

' Use a RDO Session object to locate the account
' that we are interested in

Set rSession = New Redemption.RDOSession
rSession.MAPIOBJECT = Application.Session.MAPIOBJECT
Set rAccount = rSession.Accounts(strAccount)

' Now use the RDO Mail object to change the account
' to the one we require

Set rMailItem = rSession.GetMessageFromID(oItem.EntryID)
rMailItem.Account = rAccount
If blnSave Then
' They want us to force a save to the mail object
rMailItem.Subject = rMailItem.Subject
rMailItem.Save
End If
Set rMailItem = Nothing
Set rAccount = Nothing
Set rSession = Nothing
End Sub


Public Function GetInternetHeaders(ByRef oItem As MailItem) As String

Dim rUtils As Redemption.MAPIUtils

' Return the internet header of a message
Set rUtils = New Redemption.MAPIUtils
GetInternetHeaders = rUtils.HrGetOneProp(oItem.MAPIOBJECT, PR_HEADERS)
Set rUtils = Nothing
End Function

Finally, add the following code to the ThisOutlookSession object:

Dim MyNewMailHandler As clsNewMailHandler


Private Sub Application_Quit()
Set MyNewMailHandler = Nothing
End Sub


Private Sub Application_Startup()
Set MyNewMailHandler = New clsNewMailHandler
End Sub

Restart Outlook and you are in business! Obviously you could rearrange this code to suit your own purpose and condense some of the code into the one class module but I find this modularisation makes the code much easier to understand and manage. Tovább »

forrás: Blogspot.com

 

Ez itt hasznos lehet.

Előzmény: Sznida (10)
Sznida Creative Commons License 2011.01.18 0 0 10

Sziasztok,

 

Tud valaki outlook makróban segíteni?

Használok már egy makrót, azt szeretném bővíteni, de sajnos nem találom sehol:

Ezt a makrót egy gomb indítja, és egy új üzenetet hoz létre, aminek beállítja, hogy ne mentse, és ne kérjen visszaigazolást. Azt szeretném még, hogy a használt két fiókom közül a Freemail fiókból küldje ezt az új üzenetet. Erre nem találtam sehol azt a tulajdonságot, amit változtatni tudnék!

 

Remélem tud valaki segíteni!

 

Köszönettel: Sznido

stromba Creative Commons License 2007.06.08 0 0 9

 

Remélem a remény nem halálozott el. Másold be a következő VBA kódot az outlook egy új VBA moduljába:

(ALT + F11

Project1 - jobb egérgomb - insert - module

majd futtasd le a makrót.)

 

A kód a sent itemek elemeinek tárgyát cseréli ki a küldési dátum + üres hely + előző tárgy módon.

Ha az inbox elemeit akarod megváltoztatni, akkor a 'olFolderSentMails' helyett 'olFolderInbox'-ot írj.

 

 

Sub SubjectRename()

Dim OleApp As Object
Dim nSpace As Object
Dim konyvtar As Object
Dim level As Object
Dim datum As Date
Dim elemek, z As Long

Set OleApp = CreateObject("Outlook.Application")
Set nSpace = OleApp.GetNamespace("MAPI")
Set konyvtar = nSpace.GetDefaultFolder(olFolderSentMail)
konyvtar.Display
elemek = konyvtar.Items.Count


For z = 1 To elemek
    Set level = konyvtar.Items(z)
    datum = level.SentOn
    level.Subject = datum & " " & level.Subject
    level.Save
Next z

End Sub

Előzmény: John_Doe (7)
tcickany Creative Commons License 2007.05.27 0 0 8
Javaslom tanulmányozásra: http://www.outlookcode.com :)
John_Doe Creative Commons License 2007.05.25 0 0 7
Gondoltam felhozom, mert a remény hal meg utoljára.
John_Doe Creative Commons License 2006.10.23 0 0 6

Hát hogyne!

Minden ötletnek örülnék!

Előzmény: IndexOlvasó (4)
cyb6 Creative Commons License 2006.09.21 0 0 5
És erre:


meg lehet azt csinálni outlook 2003-al, hogy az egyik gépen megtett naptári bejegyzést (ez egy laptop, valahol az országban) a másik gép is lássa? Szóval, hogy nem legyen ugyanarra az időpontra 2 bejegyzés???
Előzmény: IndexOlvasó (4)
IndexOlvasó Creative Commons License 2006.09.10 0 0 4

Aktuális még a dolog, valamilyen szinten tudok segiteni?

 

Gyuri

Előzmény: John_Doe (3)
John_Doe Creative Commons License 2006.08.20 0 0 3
Teszt
John_Doe Creative Commons License 2005.04.28 0 0 2
Felhozom, mert a remény hal meg utoljára.
John_Doe Creative Commons License 2005.04.11 0 0 1
Köszike!
Előzmény: Tombolda (0)
Tombolda Creative Commons License 2005.04.11 0 0 0
H0h0'. Nagy0n szép sz0': 0utl00k 2003.
Előzmény: John_Doe (-)
John_Doe Creative Commons License 2005.04.11 0 0 topiknyitó

Az a problémám, hogy Outlook 2003-ban szeretném automatikusan megváltoztatni az e-mailjeim subject-jét.

 

Amit csinálni szeretnék az az, hogy az új subject a levél küldési dátumával és idejével kezdődjön, legyen egy szóköz és utána jöjjön az eredeti subject.

 

Tom, hogy ezt egy makróval lehet megcsinálni és sejtem is, hogy nem egy bonyolult dolog, de még alaptudásom sincs hozzá.  A macro recorder meg persze nem műxik outlook alatt.

 

Szal ha valaki meg tudná mondani mi a VBA kód ehhez, vagy tudna releváns linket küldeni, végtelen hálás lennék.

 

Minden megoldás érdekel, ha csak olyan kódot tud valaki ami egy db e-mailt változtat így meg, az is jó.  Ha egy egész foldernyi (pld Inbox összes) az is érdekel.  Ami az egész Mailbox tartalmat írja át, hát az már nem annyira, mert az már túl sok lenne a jóból.

 

Előre is köszi,

 

JD

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!